Don't reduce the stack protector level given -fstack-protector.
Before -fstack-protector would always force a level of 1, even if the default was 2. Patch by Brad Smith. llvm-svn: 209479
This commit is contained in:
parent
7f9fc2b339
commit
ce5c6091e0
|
@ -3379,9 +3379,10 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
options::OPT_fstack_protector_all,
|
||||
options::OPT_fstack_protector_strong,
|
||||
options::OPT_fstack_protector)) {
|
||||
if (A->getOption().matches(options::OPT_fstack_protector))
|
||||
StackProtectorLevel = LangOptions::SSPOn;
|
||||
else if (A->getOption().matches(options::OPT_fstack_protector_strong))
|
||||
if (A->getOption().matches(options::OPT_fstack_protector)) {
|
||||
StackProtectorLevel = std::max<unsigned>(LangOptions::SSPOn,
|
||||
getToolChain().GetDefaultStackProtectorLevel(KernelOrKext));
|
||||
} else if (A->getOption().matches(options::OPT_fstack_protector_strong))
|
||||
StackProtectorLevel = LangOptions::SSPStrong;
|
||||
else if (A->getOption().matches(options::OPT_fstack_protector_all))
|
||||
StackProtectorLevel = LangOptions::SSPReq;
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
// RUN: %clang -target i386-pc-openbsd -### %s 2>&1 | FileCheck %s -check-prefix=OPENBSD
|
||||
// OPENBSD: "-stack-protector" "2"
|
||||
|
||||
// RUN: %clang -target i386-pc-openbsd -fstack-protector -### %s 2>&1 | FileCheck %s -check-prefix=OPENBSD_SPS
|
||||
// OPENBSD_SPS: "-stack-protector" "2"
|
||||
|
||||
// RUN: %clang -target i386-pc-openbsd -fno-stack-protector -### %s 2>&1 | FileCheck %s -check-prefix=OPENBSD_OFF
|
||||
// OPENBSD_OFF-NOT: "-stack-protector"
|
||||
|
||||
|
|
Loading…
Reference in New Issue