diff options
Diffstat (limited to 'contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.cpp')
| -rw-r--r-- | contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.cpp | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.cpp b/contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.cpp index 2d8ef841d4f6..1ee7ae602f3c 100644 --- a/contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.cpp +++ b/contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.cpp @@ -1508,7 +1508,7 @@ static void CollectARMPACBTIOptions(const ToolChain &TC, const ArgList &Args,          << Triple.getArchName();    StringRef Scope, Key; -  bool IndirectBranches, BranchProtectionPAuthLR; +  bool IndirectBranches, BranchProtectionPAuthLR, GuardedControlStack;    if (A->getOption().matches(options::OPT_msign_return_address_EQ)) {      Scope = A->getValue(); @@ -1518,6 +1518,7 @@ static void CollectARMPACBTIOptions(const ToolChain &TC, const ArgList &Args,      Key = "a_key";      IndirectBranches = false;      BranchProtectionPAuthLR = false; +    GuardedControlStack = false;    } else {      StringRef DiagMsg;      llvm::ARM::ParsedBranchProtection PBP; @@ -1531,6 +1532,7 @@ static void CollectARMPACBTIOptions(const ToolChain &TC, const ArgList &Args,      Key = PBP.Key;      BranchProtectionPAuthLR = PBP.BranchProtectionPAuthLR;      IndirectBranches = PBP.BranchTargetEnforcement; +    GuardedControlStack = PBP.GuardedControlStack;    }    CmdArgs.push_back( @@ -1543,6 +1545,8 @@ static void CollectARMPACBTIOptions(const ToolChain &TC, const ArgList &Args,          Args.MakeArgString(Twine("-mbranch-protection-pauth-lr")));    if (IndirectBranches)      CmdArgs.push_back("-mbranch-target-enforce"); +  if (GuardedControlStack) +    CmdArgs.push_back("-mguarded-control-stack");  }  void Clang::AddARMTargetArgs(const llvm::Triple &Triple, const ArgList &Args,  | 
