diff options
author | Justin Lebar <jlebar@google.com> | 2016-01-11 23:27:13 +0000 |
---|---|---|
committer | Justin Lebar <jlebar@google.com> | 2016-01-11 23:27:13 +0000 |
commit | 7bf779859a2c90017796c55d18b53ff00c27c9bf (patch) | |
tree | 64bc06e3cf1af66f139a7bd567b8c4a27fee57c0 /clang/lib/Driver/Driver.cpp | |
parent | 36a425b618f71e71d06681340b0c5df3f53cda65 (diff) | |
download | bcm5719-llvm-7bf779859a2c90017796c55d18b53ff00c27c9bf.tar.gz bcm5719-llvm-7bf779859a2c90017796c55d18b53ff00c27c9bf.zip |
[CUDA] Reject values for --cuda-gpu-arch that are not of the form /sm_\d+/.
Reviewers: tra
Subscribers: cfe-commits, jhen, echristo
Differential Revision: http://reviews.llvm.org/D16079
llvm-svn: 257413
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
-rw-r--r-- | clang/lib/Driver/Driver.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 8248a165c81..1e0a48d5292 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -1297,8 +1297,12 @@ static Action *buildCudaActions(Compilation &C, DerivedArgList &Args, if (!A->getOption().matches(options::OPT_cuda_gpu_arch_EQ)) continue; A->claim(); - if (GpuArchNames.insert(A->getValue()).second) - GpuArchList.push_back(A->getValue()); + + const auto& Arch = A->getValue(); + if (!CudaDeviceAction::IsValidGpuArchName(Arch)) + C.getDriver().Diag(clang::diag::err_drv_cuda_bad_gpu_arch) << Arch; + else if (GpuArchNames.insert(Arch).second) + GpuArchList.push_back(Arch); } // Default to sm_20 which is the lowest common denominator for supported GPUs. |