aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorJessica Clarke <jrtc27@jrtc27.com>2021-01-27 19:28:20 +0000
committerJessica Clarke <jrtc27@jrtc27.com>2021-01-27 19:28:20 +0000
commit5748a71ba3da69e9f0bfb2024eadfe6eeacade01 (patch)
tree729174db7df9623e5e368c841914ba29b89ca571 /clang/lib/Frontend/CompilerInvocation.cpp
parentab93c18c125f0ee51959ef225fa8f09f4dc29e35 (diff)
downloadllvm-5748a71ba3da69e9f0bfb2024eadfe6eeacade01.zip
llvm-5748a71ba3da69e9f0bfb2024eadfe6eeacade01.tar.gz
llvm-5748a71ba3da69e9f0bfb2024eadfe6eeacade01.tar.bz2
[builtins] Fix integer/pointer confusion in gcc_personality_v0.c
This fixes the implementation for architectures like CHERI with strong pointer provenance (pointers, and thus uintptr_t, are represented as hardware capabilities). Specifically, adding two uintptr_t's together (as is done for `start + length` and `funcStart + landingPad`) has ambiguous provenance, whereas using a plain integer (such as size_t) for the offset operand does not. Also, readULEB128 is creating a plain integer, not a pointer. On all currently-supported architectures this should be an NFC, as size_t and uintptr_t end up being the same underlying plain integer type. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D95537
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions