summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2010-12-04 01:51:40 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2010-12-04 01:51:40 +0000
commitfafa66500b331fca69bbe0298fd95737e1f95b3f (patch)
tree4d3ea1a21f5f9c3b80426451ea17ab28041573a5
parent422542625b96f267612172e5427cdea7fbf59f0f (diff)
downloadbcm5719-llvm-fafa66500b331fca69bbe0298fd95737e1f95b3f.tar.gz
bcm5719-llvm-fafa66500b331fca69bbe0298fd95737e1f95b3f.zip
Implement -cl-std=
llvm-svn: 120882
-rw-r--r--clang/include/clang/Driver/CC1Options.td2
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp7
2 files changed, 9 insertions, 0 deletions
diff --git a/clang/include/clang/Driver/CC1Options.td b/clang/include/clang/Driver/CC1Options.td
index f34a4841f86..28a31cacab4 100644
--- a/clang/include/clang/Driver/CC1Options.td
+++ b/clang/include/clang/Driver/CC1Options.td
@@ -609,3 +609,5 @@ def cl_fast_relaxed_math : Flag<"-cl-fast-relaxed-math">,
HelpText<"OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines __FAST_RELAXED_MATH__">;
def cl_mad_enable : Flag<"-cl-mad-enable">,
HelpText<"OpenCL only. Enable less precise MAD instructions to be generated.">;
+def cl_std_EQ : Joined<"-cl-std=">,
+ HelpText<"OpenCL language standard to compile for">;
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index f7656425cc6..7dbc8f23203 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -1322,6 +1322,13 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK,
<< A->getAsString(Args) << A->getValue(Args);
}
+ if (const Arg *A = Args.getLastArg(OPT_cl_std_EQ)) {
+ if (strcmp(A->getValue(Args), "CL1.1") != 0) {
+ Diags.Report(diag::err_drv_invalid_value)
+ << A->getAsString(Args) << A->getValue(Args);
+ }
+ }
+
CompilerInvocation::setLangDefaults(Opts, IK, LangStd);
// We abuse '-f[no-]gnu-keywords' to force overriding all GNU-extension
OpenPOWER on IntegriCloud