Driver: Pass -f[no-]pascal-strings on to clang, even if it has been
turned into -m[no-]pascal-strings by the tool chain.
- This still has issue that derived arguments don't propogate "used"
information correctly so spurious "argument unused" warnings will
still show up.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67841 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 248df27..db11945 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -306,6 +306,18 @@
Args.AddAllArgs(CmdArgs, options::OPT_clang_f_Group);
+ // If tool chain translates fpascal-strings, we want to back
+ // translate here.
+ // FIXME: This is gross; that translation should be pulled from the
+ // tool chain.
+ if (Arg *A = Args.getLastArg(options::OPT_mpascal_strings,
+ options::OPT_mno_pascal_strings)) {
+ if (A->getOption().matches(options::OPT_mpascal_strings))
+ CmdArgs.push_back("-fpascal-strings");
+ else
+ CmdArgs.push_back("-fno-pascal-strings");
+ }
+
Args.AddLastArg(CmdArgs, options::OPT_dM);
Args.AddAllArgValues(CmdArgs, options::OPT_Xclang);