[PATCH] D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size
Paul Robinson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 16 07:23:31 PDT 2019
probinson added a comment.
In D59687#1468536 <https://reviews.llvm.org/D59687#1468536>, @markus wrote:
> The Chromium compilation segfault comes down to two issues:
>
> 1. `DW_OP_deref_size` is supposed to take a single byte argument (and not a ULEB128). If a `size` argument larger than 127 was used ULEB128 does not encode the same way as data1 so the extractor in `DwarfDebug::emitDebugLocEntry` looses track and that results in the crash.
DWARF says that's illegal. The deref is fetching a value to push onto the expression stack. "This operand is a 1-byte unsigned integral constant whose value may not be larger than the size of the generic type."
It sounds like you're trying to do this with aggregate types, and that won't work. Only base types (for DWARF 5) or address-like types (for DWARF <= 4) should end up on the stack.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D59687/new/
https://reviews.llvm.org/D59687
More information about the llvm-commits
mailing list