aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2024-06-04 10:24:59 -0700
committerGitHub <noreply@github.com>2024-06-04 10:24:59 -0700
commit7dc84e225e11e37925db6f4f08269f447d2f2347 (patch)
tree61326c5301048f00532c202417b5a73148c80b88 /clang/lib/Frontend/CompilerInvocation.cpp
parentdfd1a2f081bdc9566cdcd03937534ec4897c9056 (diff)
downloadllvm-7dc84e225e11e37925db6f4f08269f447d2f2347.zip
llvm-7dc84e225e11e37925db6f4f08269f447d2f2347.tar.gz
llvm-7dc84e225e11e37925db6f4f08269f447d2f2347.tar.bz2
[lldb] Support reading DW_OP_piece from file address (#94026)
We received a bug report where someone was trying to print a global variable without a process. This would succeed in a debug build but fail in a on optimized build. We traced the issue back to the location being described by a DW_OP_addr + DW_OP_piece. The issue is that the DWARF expression evaluator only support reading pieces from a load address. There's no reason it cannot do the same for a file address, and indeed, that solves the problem. I unsuccessfully tried to craft a test case to illustrate the original example, using a global struct and trying to trick the compiler into breaking it apart with SROA. Instead I wrote a unit test that uses a mock target to read memory from. rdar://127435923
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions