diff options
author | Daniil Kovalev <dkovalev@accesssoftek.com> | 2024-06-28 07:29:38 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-28 07:29:38 +0300 |
commit | 1488fb4153367b9c20e8c0ca7aa40bc8437ea3d3 (patch) | |
tree | 49b5228c38a08a0dcdcf59bd53952d45e28db044 /llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp | |
parent | 993d2383e68b22475cbd734b4e194911cf15df2f (diff) | |
download | llvm-1488fb4153367b9c20e8c0ca7aa40bc8437ea3d3.zip llvm-1488fb4153367b9c20e8c0ca7aa40bc8437ea3d3.tar.gz llvm-1488fb4153367b9c20e8c0ca7aa40bc8437ea3d3.tar.bz2 |
[PAC][AArch64] Lower ptrauth constants in code (#96879)
This re-applies #94241 after fixing buildbot failure, see
https://lab.llvm.org/buildbot/#/builders/51/builds/570
According to standard, `constexpr` variables and `const` variables
initialized with constant expressions can be used in lambdas w/o
capturing - see https://en.cppreference.com/w/cpp/language/lambda.
However, MSVC used on buildkite seems to ignore that rule and does not
allow using such uncaptured variables in lambdas: we have "error C3493:
'Mask16' cannot be implicitly captured because no default capture mode
has been specified" - see
https://buildkite.com/llvm-project/github-pull-requests/builds/73238
Explicitly capturing such a variable, however, makes buildbot fail with
"error: lambda capture 'Mask16' is not required to be captured for this
use [-Werror,-Wunused-lambda-capture]" - see
https://lab.llvm.org/buildbot/#/builders/51/builds/570.
Fix both cases by using `0xffff` value directly instead of giving a name
to it.
Original PR description below.
Depends on #94240.
Define the following pseudos for lowering ptrauth constants in code:
- non-`extern_weak`:
- no GOT load needed: `MOVaddrPAC` - similar to `MOVaddr`, with added
PAC;
- GOT load needed: `LOADgotPAC` - similar to `LOADgot`, with added PAC;
- `extern_weak`: `LOADauthptrstatic` - similar to `LOADgot`, but use a
special stub slot named `sym$auth_ptr$key$disc` filled by dynamic linker
during relocation resolving instead of a GOT slot.
---------
Co-authored-by: Ahmed Bougacha <ahmed@bougacha.org>
Diffstat (limited to 'llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions