summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains/Clang.cpp
diff options
context:
space:
mode:
authorJonathan Roelofs <jonathan@codesourcery.com>2017-09-07 22:01:25 +0000
committerJonathan Roelofs <jonathan@codesourcery.com>2017-09-07 22:01:25 +0000
commit6fbb9e017d27cf14154a350d28ba7cb1bdda690a (patch)
tree38930fb915e488389052af934675a2a07402620c /clang/lib/Driver/ToolChains/Clang.cpp
parentd14d54ba37c232b953744682b8eb0bb9de4ae82b (diff)
downloadbcm5719-llvm-6fbb9e017d27cf14154a350d28ba7cb1bdda690a.tar.gz
bcm5719-llvm-6fbb9e017d27cf14154a350d28ba7cb1bdda690a.zip
Fix validation of the -mthread-model flag in the Clang driver
The ToolChain class validates the -mthread-model flag in the constructor which doesn't work correctly since the thread model methods are virtual methods. The check is moved into Clang::ConstructJob() when constructing the internal command line. https://reviews.llvm.org/D37496 Patch by: Ian Tessier! llvm-svn: 312748
Diffstat (limited to 'clang/lib/Driver/ToolChains/Clang.cpp')
-rw-r--r--clang/lib/Driver/ToolChains/Clang.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index ba03fcd57c6..98652703f1e 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -3235,8 +3235,12 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
}
CmdArgs.push_back("-mthread-model");
- if (Arg *A = Args.getLastArg(options::OPT_mthread_model))
+ if (Arg *A = Args.getLastArg(options::OPT_mthread_model)) {
+ if (!getToolChain().isThreadModelSupported(A->getValue()))
+ D.Diag(diag::err_drv_invalid_thread_model_for_target)
+ << A->getValue() << A->getAsString(Args);
CmdArgs.push_back(A->getValue());
+ }
else
CmdArgs.push_back(Args.MakeArgString(getToolChain().getThreadModel()));
OpenPOWER on IntegriCloud