aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2025-02-06 10:50:41 +1100
committerLang Hames <lhames@gmail.com>2025-02-06 11:02:06 +1100
commit88f55d16c4c247a9eef326961a1445dee3f2e30c (patch)
tree867e62eea3bcec39b9f6a8f693e1d019592e54a3 /clang/lib/CodeGen/CodeGenModule.cpp
parentaefa30e2301f155d4f4737d6f6c55c66eac58b2d (diff)
downloadllvm-88f55d16c4c247a9eef326961a1445dee3f2e30c.zip
llvm-88f55d16c4c247a9eef326961a1445dee3f2e30c.tar.gz
llvm-88f55d16c4c247a9eef326961a1445dee3f2e30c.tar.bz2
[ORC] Fix buggy calculation of second-level-page offset in unwind-info.
SecondLevelPageOffset should be incremented by SecondLevelPageSize bytes, not one byte. Failure to calculate the offset correctly leads to corrupted unwind-info (and consequently broken exceptions / unwinding) when more than one second level page is needed. Since JITLink's unwind support only produces UNWIND_SECOND_LEVEL_REGULAR-style pages this would trigger for any file containing more than 511 functions with unwind info. The included test-case contains 1022 functions (sufficient for both the current format and any future implementation that supports UNWIND_SECOND_LEVEL_COMPRESSED pages). Thanks to @edoardo on discord for spotting this bug!
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions