<div dir="ltr">On Thu, Sep 26, 2013 at 6:10 AM, Rafael Espindola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br><div class="gmail_extra">
<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: rafael<br>
Date: Thu Sep 26 08:10:14 2013<br>
New Revision: 191429<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=191429&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=191429&view=rev</a><br>
Log:<br>
Ignore some -f options that are supported by gcc.<br>
<br>
It is possible that we should say some of these are unsupported, but this is<br>
not any worse than the old behavior of ignoring all unknown -f options.<br>
<br>
Modified:<br>
    cfe/trunk/include/clang/Driver/Options.td<br>
    cfe/trunk/test/Driver/clang_f_opts.c<br>
<br>
Modified: cfe/trunk/include/clang/Driver/Options.td<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=191429&r1=191428&r2=191429&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=191429&r1=191428&r2=191429&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/include/clang/Driver/Options.td (original)<br>
+++ cfe/trunk/include/clang/Driver/Options.td Thu Sep 26 08:10:14 2013<br>
@@ -1364,6 +1364,37 @@ def Z_reserved_lib_stdcxx : Flag<["-"],<br>
 def Z_reserved_lib_cckext : Flag<["-"], "Z-reserved-lib-cckext">,<br>
     Flags<[LinkerInput, NoArgumentUnused, Unsupported]>, Group<reserved_lib_Group>;<br>
<br>
+// Ignored options<br>
+// FIXME: multiclasess produce suffixes, not prefixes. This is fine for now<br>
+// since it is only used in ignored options.<br>
+multiclass BooleanFFlag<list<string> prefixes, string name> {<br>
+  def _f : Flag<["-"], "f"#name>;<br>
+  def _fno : Flag<["-"], "fno-"#name>;<br>
+}<br></blockquote><div><br></div><div>This doesn't actually use prefixes.  Since all -f flags only use a dash prefix, can you nuke prefixes here?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

+<br>
+def fprofile_dir : Joined<["-"], "fprofile-dir=">, Group<clang_ignored_f_Group>;<br>
+<br>
+defm profile_use : BooleanFFlag<["-"], "profile-use">, Group<clang_ignored_f_Group>;<br>
+def fprofile_use_eq : Joined<["-"], "fprofile-use=">, Group<clang_ignored_f_Group>;<br>
+<br>
+defm falign_functions : BooleanFFlag<["-"], "align-functions">, Group<clang_ignored_f_Group>;<br>
+def falign_functions_eq : Joined<["-"], "falign-functions=">, Group<clang_ignored_f_Group>;<br>
+<br>
+defm tracer : BooleanFFlag<["-"], "tracer">, Group<clang_ignored_f_Group>;<br>
+defm unroll_all_loops : BooleanFFlag<["-"], "unroll-all-loops">, Group<clang_ignored_f_Group>;<br>
+defm sse : BooleanFFlag<["-"], "see">, Group<clang_ignored_f_Group>;<br>
+defm rounding_math : BooleanFFlag<["-"], "rounding-math">, Group<clang_ignored_f_Group>;<br>
+defm profile_values : BooleanFFlag<["-"], "profile-values">, Group<clang_ignored_f_Group>;<br>
+defm profile_correction : BooleanFFlag<["-"], "profile-correction">, Group<clang_ignored_f_Group>;<br>
+defm prefetch_loop_arrays : BooleanFFlag<["-"], "prefetch-loop-arrays">, Group<clang_ignored_f_Group>;<br>
+defm permissive : BooleanFFlag<["-"], "permissive">, Group<clang_ignored_f_Group>;<br>
+defm non_call_exceptions : BooleanFFlag<["-"], "non-call-exceptions">, Group<clang_ignored_f_Group>;<br>
+defm ivopts : BooleanFFlag<["-"], "ivopts">, Group<clang_ignored_f_Group>;<br>
+defm ident : BooleanFFlag<["-"], "ident">, Group<clang_ignored_f_Group>;<br>
+defm gcse : BooleanFFlag<["-"], "gcse">, Group<clang_ignored_f_Group>;<br>
+defm eliminate_unused_debug_types : BooleanFFlag<["-"], "eliminate-unused-debug-types">, Group<clang_ignored_f_Group>;<br>
+defm float_store : BooleanFFlag<["-"], "float-store">, Group<clang_ignored_f_Group>;<br>
+<br>
 include "CC1Options.td"<br>
<br>
 include "CLCompatOptions.td"<br>
<br>
Modified: cfe/trunk/test/Driver/clang_f_opts.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/clang_f_opts.c?rev=191429&r1=191428&r2=191429&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/clang_f_opts.c?rev=191429&r1=191428&r2=191429&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/test/Driver/clang_f_opts.c (original)<br>
+++ cfe/trunk/test/Driver/clang_f_opts.c Thu Sep 26 08:10:14 2013<br>
@@ -99,3 +99,26 @@<br>
 // RUN: %clang -### -S -O4 %s 2>&1 | FileCheck -check-prefix=CHECK-MAX-O %s<br>
 // CHECK-MAX-O: warning: -O4 is equivalent to -O3<br>
 // CHECK-MAX-O: -O3<br>
+<br>
+// Test that we don't error on these.<br>
+// RUN: %clang -### -S                                                        \<br>
+// RUN:     -falign-functions -falign-functions=2 -fno-align-functions        \<br>
+// RUN:     -fasynchronous-unwind-tables -fno-asynchronous-unwind-tables      \<br>
+// RUN:     -fbuiltin -fno-builtin                                            \<br>
+// RUN:     -ffloat-store -fno-float-store                                    \<br>
+// RUN:     -feliminate-unused-debug-types -fno-eliminate-unused-debug-types  \<br>
+// RUN:     -fgcse -fno-gcse                                                  \<br>
+// RUN:     -fident -fno-ident                                                \<br>
+// RUN:     -fivopts -fno-ivopts                                              \<br>
+// RUN:     -fnon-call-exceptions -fno-non-call-exceptions                    \<br>
+// RUN:     -fpermissive -fno-permissive                                      \<br>
+// RUN:     -fprefetch-loop-arrays -fno-prefetch-loop-arrays                  \<br>
+// RUN:     -fprofile-correction -fno-profile-correction                      \<br>
+// RUN:     -fprofile-dir=bar                                                 \<br>
+// RUN:     -fprofile-use -fprofile-use=zed -fno-profile-use                  \<br>
+// RUN:     -fprofile-values -fno-profile-values                              \<br>
+// RUN:     -frounding-math -fno-rounding-math                                \<br>
+// RUN:     -fsee -fno-see                                                    \<br>
+// RUN:     -ftracer -fno-tracer                                              \<br>
+// RUN:     -funroll-all-loops -fno-unroll-all-loops                          \<br>
+// RUN:     %s<br>
<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>
</blockquote></div><br></div></div>