[llvm] [llvm][AArch64] Do not inline a function with different signing scheme. (PR #80642)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 14 14:19:21 PST 2024
================
@@ -2110,6 +2110,21 @@ llvm::InlineResult llvm::InlineFunction(CallBase &CB, InlineFunctionInfo &IFI,
return InlineResult::failure("incompatible strictfp attributes");
}
+ // Do not inline function with a different signing scheme.
+ if (CalledFunc->getFnAttribute("sign-return-address") !=
+ Caller->getFnAttribute("sign-return-address")) {
+ return InlineResult::failure("incompatible sign return address attributes");
+ }
+ if (CalledFunc->getFnAttribute("sign-return-address-key") !=
+ Caller->getFnAttribute("sign-return-address-key")) {
+ return InlineResult::failure("incompatible signing keys attributes");
+ }
+ if (CalledFunc->getFnAttribute("branch-protection-pauth-lr") !=
+ Caller->getFnAttribute("branch-protection-pauth-lr")) {
+ return InlineResult::failure(
+ "incompatible sign return address modifier attributes");
+ }
+
----------------
DanielKristofKiss wrote:
done.
https://github.com/llvm/llvm-project/pull/80642
More information about the llvm-commits
mailing list