aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Driver/Tools.cpp')
-rw-r--r--lib/Driver/Tools.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 33e11fb849..48aeb5be74 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -1777,8 +1777,18 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
// -fno-delayed-template-parsing is default.
if (Args.hasFlag(options::OPT_fdelayed_template_parsing,
options::OPT_fno_delayed_template_parsing,
- false))
- CmdArgs.push_back("-fdelayed-template-parsing");
+ false)) {
+ if (Args.hasArg(options::OPT_fdelayed_template_parsing)) {
+ StringRef Force = Args.getLastArgValue(options::OPT_fdelayed_template_parsing, "");
+ if (Force == "-force")
+ CmdArgs.push_back("-fdelayed-template-parsing-force");
+ else
+ CmdArgs.push_back("-fdelayed-template-parsing");
+ }
+ else
+ CmdArgs.push_back("-fdelayed-template-parsing");
+ }
+
// -fgnu-keywords default varies depending on language; only pass if
// specified.