[clang] [clang] Function type attribute to prevent CFI instrumentation (PR #135836)

via cfe-commits cfe-commits at lists.llvm.org
Tue May 20 11:06:10 PDT 2025


================
@@ -3006,6 +3006,10 @@ static LValue EmitFunctionDeclLValue(CodeGenFunction &CGF, const Expr *E,
                                      GlobalDecl GD) {
   const FunctionDecl *FD = cast<FunctionDecl>(GD.getDecl());
   llvm::Constant *V = CGF.CGM.getFunctionPointer(GD);
+  if (E->getType()->isCFIUncheckedCalleeFunctionType()) {
+    if (auto *GV = dyn_cast<llvm::GlobalValue>(V))
+      V = llvm::NoCFIValue::get(GV);
+  }
   CharUnits Alignment = CGF.getContext().getDeclAlign(FD);
   return CGF.MakeAddrLValue(V, E->getType(), Alignment,
----------------
PiJoules wrote:

Done

https://github.com/llvm/llvm-project/pull/135836


More information about the cfe-commits mailing list