summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Action.cpp
diff options
context:
space:
mode:
authorJustin Lebar <jlebar@google.com>2016-01-11 23:27:13 +0000
committerJustin Lebar <jlebar@google.com>2016-01-11 23:27:13 +0000
commit7bf779859a2c90017796c55d18b53ff00c27c9bf (patch)
tree64bc06e3cf1af66f139a7bd567b8c4a27fee57c0 /clang/lib/Driver/Action.cpp
parent36a425b618f71e71d06681340b0c5df3f53cda65 (diff)
downloadbcm5719-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.cpp10
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() {}
OpenPOWER on IntegriCloud