llvm-project
92b64cee - [libunwind][PAC] Resign explicitly in loadAndAuthenticateLinkRegister

Commit
59 days ago
[libunwind][PAC] Resign explicitly in loadAndAuthenticateLinkRegister Explicitly call `ptrauth_auth_and_resign` to prevent separate auth and sign intrinsics being emitted by Clang frontend. Even if replacing separate "auth" and "sign" operations with a safer "resign" would be implemented in LLVM optimizer pipeline, Clang frontend treats zero pointer as a special case w.r.t. PtrAuth. This results in such combination of an explicit authentication and an implicit signing to be emitted as a hard-to- simplify comparison against zero along these lines: tmp = auth(input) if (tmp == 0) *output = sign(tmp) else *output = 0
Author
Committer
Parents
Loading