[CUDA] Don't pass -stack-protector to NVPTX compilations.
We can't support stack-protector on NVPTX because NVPTX doesn't expose a stack to the compiler! Fixes PR32009. llvm-svn: 295609
This commit is contained in:
parent
4271186f9c
commit
63152d10c9
|
|
@ -5544,6 +5544,9 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
// -stack-protector=0 is default.
|
||||
unsigned StackProtectorLevel = 0;
|
||||
// NVPTX doesn't support stack protectors; from the compiler's perspective, it
|
||||
// doesn't even have a stack!
|
||||
if (!Triple.isNVPTX()) {
|
||||
if (Arg *A = Args.getLastArg(options::OPT_fno_stack_protector,
|
||||
options::OPT_fstack_protector_all,
|
||||
options::OPT_fstack_protector_strong,
|
||||
|
|
@ -5564,6 +5567,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
if (Triple.isOSDarwin() && !IsHosted)
|
||||
StackProtectorLevel = 0;
|
||||
}
|
||||
}
|
||||
if (StackProtectorLevel) {
|
||||
CmdArgs.push_back("-stack-protector");
|
||||
CmdArgs.push_back(Args.MakeArgString(Twine(StackProtectorLevel)));
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
// Check that -stack-protector doesn't get passed down to device-side
|
||||
// compilation.
|
||||
//
|
||||
// REQUIRES: clang-driver
|
||||
//
|
||||
// RUN: %clang -### -target x86_64-linux-gnu -c --cuda-gpu-arch=sm_20 \
|
||||
// RUN: -fstack-protector-all %s 2>&1 | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// RUN: %clang -### -target x86_64-linux-gnu -c --cuda-gpu-arch=sm_20 \
|
||||
// RUN: -fstack-protector-strong %s 2>&1 | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// RUN: %clang -### -target x86_64-linux-gnu -c --cuda-gpu-arch=sm_20 \
|
||||
// RUN: -fstack-protector %s 2>&1 | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// CHECK-NOT: error: unsupported option '-fstack-protector
|
||||
// CHECK-DAG: "-fcuda-is-device"
|
||||
// CHECK-NOT: "-stack-protector"
|
||||
// CHECK-NOT: "-stack-protector-buffer-size"
|
||||
// CHECK-DAG: "-triple" "x86_64--linux-gnu"
|
||||
// CHECK: "-stack-protector"
|
||||
Loading…
Reference in New Issue