Skip to content

Commit 908e0cf

Browse files
OCHyamsagozillon
authored andcommitted
[HWASAN] Remove DW_OP_LLVM_tag_offset from DIExpression::isImplicit (llvm#79816)
According to its doc-comment `isImplicit` is meant to return true if the expression is an implicit location description (describes an object or part of an object which has no location by computing the value from available program state). There's a brief entry for `DW_OP_LLVM_tag_offset` in the LangRef and there's some info in the original commit fb9ce10. From what I can tell it doesn't look like `DW_OP_LLVM_tag_offset` affects whether or not the location is implicit; the opcode doesn't get included in the final location description but instead is added as an attribute to the variable. This was tripping an assertion in the latest application of the fix to llvm#76545, llvm#78606, where an expression containing a `DW_OP_LLVM_tag_offset` is split into a fragment (i.e., describe a part of the whole variable).
1 parent 86a8d73 commit 908e0cf

File tree

1 file changed

+0
-1
lines changed

1 file changed

+0
-1
lines changed

llvm/lib/IR/DebugInfoMetadata.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1512,7 +1512,6 @@ bool DIExpression::isImplicit() const {
15121512
default:
15131513
break;
15141514
case dwarf::DW_OP_stack_value:
1515-
case dwarf::DW_OP_LLVM_tag_offset:
15161515
return true;
15171516
}
15181517
}

0 commit comments

Comments
 (0)