diff options
| author | Jessica Clarke <jrtc27@jrtc27.com> | 2021-01-27 19:28:20 +0000 |
|---|---|---|
| committer | Jessica Clarke <jrtc27@jrtc27.com> | 2021-01-27 19:28:20 +0000 |
| commit | 5748a71ba3da69e9f0bfb2024eadfe6eeacade01 (patch) | |
| tree | 729174db7df9623e5e368c841914ba29b89ca571 /clang/lib/Frontend/CompilerInvocation.cpp | |
| parent | ab93c18c125f0ee51959ef225fa8f09f4dc29e35 (diff) | |
| download | llvm-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
