summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2018-07-26 15:17:38 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2018-07-26 15:17:38 +0000
commit77403dee052d729e06c4d84b7668dec0a9c3c27d (patch)
tree0639c9796e7e6b878c5b37c1256f4314699c4de0 /clang/lib/Frontend/CompilerInvocation.cpp
parent7bfa5d65446e7dda1a8e54c806f5d7687766bb2d (diff)
downloadbcm5719-llvm-77403dee052d729e06c4d84b7668dec0a9c3c27d.tar.gz
bcm5719-llvm-77403dee052d729e06c4d84b7668dec0a9c3c27d.zip
[OPENMP] Force OpenMP 4.5 when compiling for offloading.
If the user requested compilation for OpenMP with the offloading support, force the version of the OpenMP standard to 4.5 by default. llvm-svn: 338032
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index 5878cce772b..78e6babd025 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -2594,13 +2594,15 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK,
Opts.OpenMP && !Args.hasArg(options::OPT_fnoopenmp_use_tls);
Opts.OpenMPIsDevice =
Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_is_device);
+ bool IsTargetSpecified =
+ Opts.OpenMPIsDevice || Args.hasArg(options::OPT_fopenmp_targets_EQ);
if (Opts.OpenMP || Opts.OpenMPSimd) {
- if (int Version =
- getLastArgIntValue(Args, OPT_fopenmp_version_EQ,
- IsSimdSpecified ? 45 : Opts.OpenMP, Diags))
+ if (int Version = getLastArgIntValue(
+ Args, OPT_fopenmp_version_EQ,
+ (IsSimdSpecified || IsTargetSpecified) ? 45 : Opts.OpenMP, Diags))
Opts.OpenMP = Version;
- else if (IsSimdSpecified)
+ else if (IsSimdSpecified || IsTargetSpecified)
Opts.OpenMP = 45;
// Provide diagnostic when a given target is not expected to be an OpenMP
// device or host.
OpenPOWER on IntegriCloud