aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorPeter Rong <peterrong96@gmail.com>2025-07-31 14:13:55 -0700
committerGitHub <noreply@github.com>2025-07-31 14:13:55 -0700
commitfe899cedac18cf3fcf70c58084a1940936ab9a95 (patch)
tree44a2ef6615b5f631e9309c075301a34c4d93730b /clang/lib/Frontend/CompilerInvocation.cpp
parentd6c85fc9abd64a309a7c88c39ab12b1201e516de (diff)
downloadllvm-fe899cedac18cf3fcf70c58084a1940936ab9a95.zip
llvm-fe899cedac18cf3fcf70c58084a1940936ab9a95.tar.gz
llvm-fe899cedac18cf3fcf70c58084a1940936ab9a95.tar.bz2
[DWARFLinker] Fix matching logic to remove type 1 missing offset (#151427)
Reverts the [revert](https://github.com/llvm/llvm-project/pull/151424) and fixed some typos. Original PR description: Second attempt to fix https://discourse.llvm.org/t/rfc-new-dwarf-attribute-for-symbolication-of-merged-functions/79434/29?u=alx32 (First attempt: https://github.com/llvm/llvm-project/pull/143656) Context: the sequence offset to row index we parsed may not be complete. And we need to add manual matching to it. https://github.com/llvm/llvm-project/pull/143656 attempts to do trivial 1:1 matching, however, sometimes they don't line up perfectly, as shown below: // While SeqOffToOrigRow parsed from CU could be the ground truth, // e.g. // // SeqOff Row // 0x08 9 // 0x14 15 // // The StmtAttrs and SeqStartRows may not match perfectly, e.g. // // StmtAttrs SeqStartRows // 0x04 3 // 0x08 5 // 0x10 9 // 0x12 11 // 0x14 15 // // In this case, we don't want to assign 5 to 0x08, since we know 0x08 // maps to 9. If we do a dummy 1:1 mapping 0x10 will be mapped to 9 // which is incorrect. The expected behavior is ignore 5, realign the // table based on the result from the line table: // // StmtAttrs SeqStartRows // 0x04 3 // -- 5 // 0x08 9 <- LineTableMapping ground truth // 0x10 11 // 0x12 -- // 0x14 15 <- LineTableMapping ground truth In this case, we need to use the mapping we read from the line table as a ground truth and organize them properly to prevent duplicated offset/missing offset. Test: Updated the test case --------- Signed-off-by: Peter Rong <PeterRong@meta.com> Co-authored-by: Ellis Hoag <ellis.sparky.hoag@gmail.com>
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions