[llvm-branch-commits] [clang] [clang] Implement function pointer signing and authenticated function calls (PR #93906)
Daniil Kovalev via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Jun 17 08:01:14 PDT 2024
================
@@ -61,3 +79,28 @@ CodeGen::getConstantSignedPointer(CodeGenModule &CGM, llvm::Constant *Pointer,
return CGM.getConstantSignedPointer(Pointer, Key, StorageAddress,
OtherDiscriminator);
}
+
+/// If applicable, sign a given constant function pointer with the ABI rules for
+/// functionType.
+llvm::Constant *CodeGenModule::getFunctionPointer(llvm::Constant *Pointer,
+ QualType FunctionType,
+ GlobalDecl GD) {
+ assert(FunctionType->isFunctionType() ||
+ FunctionType->isFunctionReferenceType() ||
+ FunctionType->isFunctionPointerType());
+
+ if (auto PointerAuth = getFunctionPointerAuthInfo(FunctionType)) {
+ return getConstantSignedPointer(
+ Pointer, PointerAuth.getKey(), nullptr,
----------------
kovdan01 wrote:
nit
```suggestion
Pointer, PointerAuth.getKey(), /*StorageAddress=*/nullptr,
```
https://github.com/llvm/llvm-project/pull/93906
More information about the llvm-branch-commits
mailing list