aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/JSON.cpp
diff options
context:
space:
mode:
authorGeorgii Rymar <grimar@accesssoftek.com>2020-09-21 18:07:49 +0300
committerGeorgii Rymar <grimar@accesssoftek.com>2020-09-24 13:21:00 +0300
commitbb0597067d1e7410e67d8c7d8a4c0ec9e6b26cd0 (patch)
tree0b697789c352d362990e58520470fbfc71ff4eba /llvm/lib/Support/JSON.cpp
parent5bddaf6dbf77085863346d3171023e30972b7323 (diff)
downloadllvm-bb0597067d1e7410e67d8c7d8a4c0ec9e6b26cd0.zip
llvm-bb0597067d1e7410e67d8c7d8a4c0ec9e6b26cd0.tar.gz
llvm-bb0597067d1e7410e67d8c7d8a4c0ec9e6b26cd0.tar.bz2
[llvm-readelf/obj] - Stop printing wrong addresses for arm32 unwind info for non-relocatable objects.
This is the first patch for https://bugs.llvm.org/show_bug.cgi?id=47581. Currently -u does not compute function addresses correctly and dumps broken addresses for non-relocatable objects. ARM spec says: "An index table entry consists of 2 words. The first word contains a prel31 offset (see Relocations) to the start of a function, with bit 31 clear." ... "The relocated 31 bits form a place-relative signed offset to the referenced entity. For brevity, this document will refer to the results of these relocations as "prel31 offsets"." (https://developer.arm.com/documentation/ihi0038/c/?lang=en#index-table-entries) (https://developer.arm.com/documentation/ihi0038/c/?lang=en#relocations) Currently we use an address of the SHT_ARM_EXIDX section instead of an address of an entry in computations. As a result we compute an offset that is not really "place-relative", but section relative, what is wrong. The patch fixes this issue. Differential revision: https://reviews.llvm.org/D88076
Diffstat (limited to 'llvm/lib/Support/JSON.cpp')
0 files changed, 0 insertions, 0 deletions