[llvm-bugs] [Bug 43872] New: libunwind: Evaluating DWARF operation DW_OP_pick is broken

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Oct 31 23:52:37 PDT 2019


https://bugs.llvm.org/show_bug.cgi?id=43872

            Bug ID: 43872
           Summary: libunwind: Evaluating DWARF operation DW_OP_pick is
                    broken
           Product: libc++abi
           Version: 9.0
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: All Bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: ilya.burylov at intel.com
                CC: llvm-bugs at lists.llvm.org, mclow.lists at gmail.com

The problem is in libunwind: src/DwarfInstructions.hpp

DwarfInstructions<A, R>::evaluateExpression()
...
uint32_t reg;
...
    case DW_OP_pick:
      // pick from
      reg = addressSpace.get8(p);
      p += 1;
      value = sp[-reg];
      *(++sp) = value;

DW_OP_pick instructs to push an stack entry on the stack with the specified
index (0 through 255, inclusive)

Since reg is unsigned, -reg does not do, what it was supposed to do.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20191101/6944d64a/attachment-0001.html>


More information about the llvm-bugs mailing list