[clang] [llvm] [Clang][AArch64] Command-line options for A-profile's Sign Return Address Hardening (PR #176171)

Anatoly Trosinenko via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 8 12:06:50 PDT 2026


================
@@ -1660,6 +1660,11 @@ void CodeGenModule::Release() {
               LangOpts.PointerAuthInitFiniAddressDiscrimination);
     }
 
+    if (LangOpts.isSignReturnAddressHardenWithLoadReturnAddress())
+      getModule().addModuleFlag(
+          llvm::Module::Error, "sign-return-address-harden",
+          llvm::MDString::get(getLLVMContext(), "load-return-address"));
+
----------------
atrosinenko wrote:

It would probably be more straightforward to define a "none vs. anything" getter instead `isSignReturnAddressHardenWithLoadReturnAddress` and use something like this
```cpp
if (LangOpts.isSignReturnAddressHardenEnabled()) {
  TargetInfo::BranchProtectionInfo BPI(LangOpts);
  getModule().addModuleFlag(
      llvm::Module::Error, "sign-return-address-harden",
      llvm::MDString::get(getLLVMContext(), BPI.getSignReturnAddressHardeningStr()));
}
```

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


More information about the cfe-commits mailing list