Skip to content

Commit f34418c

Browse files
authored
[HWASAN] Remove DW_OP_LLVM_tag_offset from DIExpression::isImplicit (#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 #76545, #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 1bbb797 commit f34418c

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)