aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorOliver Stannard <oliver.stannard@arm.com>2023-07-27 14:36:14 +0100
committerOliver Stannard <oliver.stannard@arm.com>2023-08-03 11:45:51 +0100
commitf2e7285b03fbfc263c8a2eaa2b5e2e1cfafc6abd (patch)
tree887475f66bbcc1f8f81a4915ae2df153ecc7d036 /clang/lib/Frontend/CompilerInvocation.cpp
parentb3b2a9209bd6e6dbe8fbeca455361597bb485956 (diff)
downloadllvm-f2e7285b03fbfc263c8a2eaa2b5e2e1cfafc6abd.zip
llvm-f2e7285b03fbfc263c8a2eaa2b5e2e1cfafc6abd.tar.gz
llvm-f2e7285b03fbfc263c8a2eaa2b5e2e1cfafc6abd.tar.bz2
[AArch64][PtrAuth] Fix unwind state for tail calls
When generating unwind tables for code which uses return-address signing, we need to toggle the RA_SIGN_STATE DWARF register around any tail-calls, because these require the return address to be authenticated before the call, and could throw an exception. This is done using the .cfi_negate_ra_state directive before the call, and .cfi_restore_state at the start of the next basic block. However, since D153098, the .cfi_restore_state isn't being inserted, because the CFIFixup pass isn't being run. This re-enables that pass when return-adress signing is enabled. Reviewed By: ikudrin, MaskRay Differential Revision: https://reviews.llvm.org/D156428
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions