diff options
| author | 2019-03-31 02:44:02 +0000 | |
|---|---|---|
| committer | 2019-03-31 02:44:02 +0000 | |
| commit | 35770e77a5cb7955bc8a7ce373ad712f9b51aa56 (patch) | |
| tree | 5905106f945630e84045778bbb02db4277c33110 /gnu/llvm/tools/clang | |
| parent | Do not store the retguard cookie in frame in leaf functions if possible. (diff) | |
| download | wireguard-openbsd-35770e77a5cb7955bc8a7ce373ad712f9b51aa56.tar.xz wireguard-openbsd-35770e77a5cb7955bc8a7ce373ad712f9b51aa56.zip | |
If using retguard, we do not also need the stack protector.
ok deraadt@
Diffstat (limited to 'gnu/llvm/tools/clang')
| -rw-r--r-- | gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp b/gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp index 07980c4e427..b4d4287428a 100644 --- a/gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp +++ b/gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp @@ -4103,8 +4103,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, Args.AddLastArg(CmdArgs, options::OPT_pthread); - RenderSSPOptions(getToolChain(), Args, CmdArgs, KernelOrKext); - // -ret-protector unsigned RetProtector = 1; if (Arg *A = Args.getLastArg(options::OPT_fno_ret_protector, @@ -4120,7 +4118,10 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, !Args.hasArg(options::OPT_fno_stack_protector) && !Args.hasArg(options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString("-D_RET_PROTECTOR")); - CmdArgs.push_back(Args.MakeArgString(Twine("-ret-protector"))); + CmdArgs.push_back(Args.MakeArgString("-ret-protector")); + } else { + // If we're not using retguard, then do the usual stack protector + RenderSSPOptions(getToolChain(), Args, CmdArgs, KernelOrKext); } // -fixup-gadgets |
