diff options
Diffstat (limited to 'clang/lib/CodeGen/CGDeclCXX.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CGDeclCXX.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGDeclCXX.cpp b/clang/lib/CodeGen/CGDeclCXX.cpp index 4499eb93ebb..3f96fea608e 100644 --- a/clang/lib/CodeGen/CGDeclCXX.cpp +++ b/clang/lib/CodeGen/CGDeclCXX.cpp @@ -359,6 +359,12 @@ llvm::Function *CodeGenModule::CreateGlobalInitOrDestructFunction( !isInSanitizerBlacklist(SanitizerKind::ShadowCallStack, Fn, Loc)) Fn->addFnAttr(llvm::Attribute::ShadowCallStack); + auto RASignKind = getCodeGenOpts().getSignReturnAddress(); + if (RASignKind != CodeGenOptions::SignReturnAddressScope::None) + Fn->addFnAttr("sign-return-address", + RASignKind == CodeGenOptions::SignReturnAddressScope::All + ? "all" + : "non-leaf"); return Fn; } |

