<div dir="ltr">FYI, this meets my bar for "obvious", feel free to move patches of this level of complexity to post-commit.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jul 31, 2013 at 10:41 AM, Hans Wennborg <span dir="ltr"><<a href="mailto:hans@chromium.org" target="_blank">hans@chromium.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi rnk,<br>
<br>
This way we don't have to translate it manually in Clang::ConstructJob.<br>
<br>
<a href="http://llvm-reviews.chandlerc.com/D1249" target="_blank">http://llvm-reviews.chandlerc.com/D1249</a><br>
<br>
Files:<br>
  include/clang/Driver/Options.td<br>
  lib/Driver/Tools.cpp<br>
  test/Driver/clang_f_opts.c<br>
<br>
Index: include/clang/Driver/Options.td<br>
===================================================================<br>
--- include/clang/Driver/Options.td<br>
+++ include/clang/Driver/Options.td<br>
@@ -937,7 +937,8 @@<br>
 def mno_global_merge : Flag<["-"], "mno-global-merge">, Group<m_Group>, Flags<[CC1Option]>,<br>
   HelpText<"Disable merging of globals">;<br>
 def mno_mmx : Flag<["-"], "mno-mmx">, Group<m_x86_Features_Group>;<br>
-def mno_pascal_strings : Flag<["-"], "mno-pascal-strings">, Group<m_Group>;<br>
+def mno_pascal_strings : Flag<["-"], "mno-pascal-strings">,<br>
+  Alias<fno_pascal_strings>;<br>
 def mno_red_zone : Flag<["-"], "mno-red-zone">, Group<m_Group>;<br>
 def mno_relax_all : Flag<["-"], "mno-relax-all">, Group<m_Group>;<br>
 def mno_rtd: Flag<["-"], "mno-rtd">, Group<m_Group>;<br>
@@ -976,7 +977,7 @@<br>
 def momit_leaf_frame_pointer : Flag<["-"], "momit-leaf-frame-pointer">, Group<m_Group>,<br>
   HelpText<"Omit frame pointer setup for leaf functions">, Flags<[CC1Option]>;<br>
 def moslib_EQ : Joined<["-"], "moslib=">, Group<m_Group>;<br>
-def mpascal_strings : Flag<["-"], "mpascal-strings">, Group<m_Group>;<br>
+def mpascal_strings : Flag<["-"], "mpascal-strings">, Alias<fpascal_strings>;<br>
 def mred_zone : Flag<["-"], "mred-zone">, Group<m_Group>;<br>
 def mregparm_EQ : Joined<["-"], "mregparm=">, Group<m_Group>;<br>
 def mrelax_all : Flag<["-"], "mrelax-all">, Group<m_Group>, Flags<[CC1Option]>,<br>
Index: lib/Driver/Tools.cpp<br>
===================================================================<br>
--- lib/Driver/Tools.cpp<br>
+++ lib/Driver/Tools.cpp<br>
@@ -3300,16 +3300,9 @@<br>
   if (Arg *A = Args.getLastArg(options::OPT_fshort_wchar))<br>
     A->render(Args, CmdArgs);<br>
<br>
-  // -fno-pascal-strings is default, only pass non-default. If the tool chain<br>
-  // happened to translate to -mpascal-strings, we want to back translate here.<br>
-  //<br>
-  // FIXME: This is gross; that translation should be pulled from the<br>
-  // tool chain.<br>
+  // -fno-pascal-strings is default, only pass non-default.<br>
   if (Args.hasFlag(options::OPT_fpascal_strings,<br>
                    options::OPT_fno_pascal_strings,<br>
-                   false) ||<br>
-      Args.hasFlag(options::OPT_mpascal_strings,<br>
-                   options::OPT_mno_pascal_strings,<br>
                    false))<br>
     CmdArgs.push_back("-fpascal-strings");<br>
<br>
Index: test/Driver/clang_f_opts.c<br>
===================================================================<br>
--- test/Driver/clang_f_opts.c<br>
+++ test/Driver/clang_f_opts.c<br>
@@ -71,3 +71,9 @@<br>
 // CHECK-EXTENDED-IDENTIFIERS: "-cc1"<br>
 // CHECK-EXTENDED-IDENTIFIERS-NOT: "-fextended-identifiers"<br>
 // CHECK-NO-EXTENDED-IDENTIFIERS: error: unsupported option '-fno-extended-identifiers'<br>
+<br>
+// RUN: %clang -### -S -fno-pascal-strings -mpascal-strings %s 2>&1 | FileCheck -check-prefix=CHECK-M-PASCAL-STRINGS %s<br>
+// CHECK-M-PASCAL-STRINGS: "-fpascal-strings"<br>
+<br>
+// RUN: %clang -### -S -fpascal-strings -mno-pascal-strings %s 2>&1 | FileCheck -check-prefix=CHECK-NO-M-PASCAL-STRINGS %s<br>
+// CHECK-NO-M-PASCAL-STRINGS-NOT: "-fpascal-strings"<br>
<br>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
<br></blockquote></div><br></div>