summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-03-27 15:22:28 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-03-27 15:22:28 +0000
commita21c833d744f1a45a7d15394817fc07b57c49f43 (patch)
tree501ca219451d84dc562f88cf17b0c73ec1518d45 /clang/lib/Driver/Tools.cpp
parent33e6f91ec33688f5ab004d15940749d817b4b5a7 (diff)
downloadbcm5719-llvm-a21c833d744f1a45a7d15394817fc07b57c49f43.tar.gz
bcm5719-llvm-a21c833d744f1a45a7d15394817fc07b57c49f43.zip
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. llvm-svn: 67841
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 248df2786fe..db11945e896 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -306,6 +306,18 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
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);
OpenPOWER on IntegriCloud