Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[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
- Loading branch information