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/Action.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/Action.cpp')
-rw-r--r-- | clang/lib/Driver/Action.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/clang/lib/Driver/Action.cpp b/clang/lib/Driver/Action.cpp index bb76ae5ec0b..0117f8ab0be 100644 --- a/clang/lib/Driver/Action.cpp +++ b/clang/lib/Driver/Action.cpp @@ -9,6 +9,7 @@ #include "clang/Driver/Action.h" #include "llvm/Support/ErrorHandling.h" +#include "llvm/Support/Regex.h" #include <cassert> using namespace clang::driver; using namespace llvm::opt; @@ -54,7 +55,14 @@ void CudaDeviceAction::anchor() {} CudaDeviceAction::CudaDeviceAction(Action *Input, const char *ArchName, bool AtTopLevel) : Action(CudaDeviceClass, Input), GpuArchName(ArchName), - AtTopLevel(AtTopLevel) {} + AtTopLevel(AtTopLevel) { + assert(IsValidGpuArchName(GpuArchName)); +} + +bool CudaDeviceAction::IsValidGpuArchName(llvm::StringRef ArchName) { + static llvm::Regex RE("^sm_[0-9]+$"); + return RE.match(ArchName); +} void CudaHostAction::anchor() {} |