]> granicus.if.org Git - clang/commitdiff
Driver: Pass -f[no-]pascal-strings on to clang, even if it has been
authorDaniel Dunbar <daniel@zuster.org>
Fri, 27 Mar 2009 15:22:28 +0000 (15:22 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Fri, 27 Mar 2009 15:22:28 +0000 (15:22 +0000)
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

lib/Driver/Tools.cpp

index 248df2786fe6bb2c234abfe36379a6a937644963..db11945e8967e9d1aee75abaeba49f7e19cf905c 100644 (file)
@@ -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);