[all-commits] [llvm/llvm-project] f34418: [HWASAN] Remove DW_OP_LLVM_tag_offset from DIExpre...

Orlando Cazalet-Hyams via All-commits all-commits at lists.llvm.org
Thu Feb 1 02:29:20 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f34418c73b718abb24cd5b921b5a2846011e7d0c
      https://github.com/llvm/llvm-project/commit/f34418c73b718abb24cd5b921b5a2846011e7d0c
  Author: Orlando Cazalet-Hyams <orlando.hyams at sony.com>
  Date:   2024-02-01 (Thu, 01 Feb 2024)

  Changed paths:
    M llvm/lib/IR/DebugInfoMetadata.cpp

  Log Message:
  -----------
  [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 fb9ce100d19be130d004d03088ccd4af295f3435.

>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).




More information about the All-commits mailing list