[PATCH] D120168: [Debuginfo][LSR][NFC] Add support for salvaging variadic dbg.value intrinsics [1/2]

Orlando Cazalet-Hyams via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 7 03:23:39 PST 2022


Orlando added a comment.

The change SGTM but I found a reproducer that causes clang to crash when this patch is applied:

  $ cat reduce.cpp
  #include <utility>
  template <typename a> class Vec {
  public:
    void push(a);
  };
  void d(int argc, char **argv) {
    Vec<std::pair<char *, unsigned>> e;
    for (int f = 0;;)
      for (; f < argc; ++f)
        e.push(std::make_pair(argv[f], f));
  }
  
  $ clang++  -O2 -g reduce.cpp
  
  /home/och/dev/llvm/llvm-project/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h:139: llvm::DbgValueLoc::DbgValueLoc(const llvm::DIExpression*, llvm::ArrayRef<llvm::DbgValueLocEntry>, bool): Assertion `Expr && Expr->isValid() && is_contained(Expr->getElements(), dwarf::DW_OP_stack_value)' failed.
  ...


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D120168/new/

https://reviews.llvm.org/D120168



More information about the llvm-commits mailing list