def Z_reserved_lib_cckext : Flag<["-"], "Z-reserved-lib-cckext">,
Flags<[LinkerInput, NoArgumentUnused, Unsupported]>, Group<reserved_lib_Group>;
+// Ignored options
+// FIXME: multiclasess produce suffixes, not prefixes. This is fine for now
+// since it is only used in ignored options.
+multiclass BooleanFFlag<list<string> prefixes, string name> {
+ def _f : Flag<["-"], "f"#name>;
+ def _fno : Flag<["-"], "fno-"#name>;
+}
+
+def fprofile_dir : Joined<["-"], "fprofile-dir=">, Group<clang_ignored_f_Group>;
+
+defm profile_use : BooleanFFlag<["-"], "profile-use">, Group<clang_ignored_f_Group>;
+def fprofile_use_eq : Joined<["-"], "fprofile-use=">, Group<clang_ignored_f_Group>;
+
+defm falign_functions : BooleanFFlag<["-"], "align-functions">, Group<clang_ignored_f_Group>;
+def falign_functions_eq : Joined<["-"], "falign-functions=">, Group<clang_ignored_f_Group>;
+
+defm tracer : BooleanFFlag<["-"], "tracer">, Group<clang_ignored_f_Group>;
+defm unroll_all_loops : BooleanFFlag<["-"], "unroll-all-loops">, Group<clang_ignored_f_Group>;
+defm sse : BooleanFFlag<["-"], "see">, Group<clang_ignored_f_Group>;
+defm rounding_math : BooleanFFlag<["-"], "rounding-math">, Group<clang_ignored_f_Group>;
+defm profile_values : BooleanFFlag<["-"], "profile-values">, Group<clang_ignored_f_Group>;
+defm profile_correction : BooleanFFlag<["-"], "profile-correction">, Group<clang_ignored_f_Group>;
+defm prefetch_loop_arrays : BooleanFFlag<["-"], "prefetch-loop-arrays">, Group<clang_ignored_f_Group>;
+defm permissive : BooleanFFlag<["-"], "permissive">, Group<clang_ignored_f_Group>;
+defm non_call_exceptions : BooleanFFlag<["-"], "non-call-exceptions">, Group<clang_ignored_f_Group>;
+defm ivopts : BooleanFFlag<["-"], "ivopts">, Group<clang_ignored_f_Group>;
+defm ident : BooleanFFlag<["-"], "ident">, Group<clang_ignored_f_Group>;
+defm gcse : BooleanFFlag<["-"], "gcse">, Group<clang_ignored_f_Group>;
+defm eliminate_unused_debug_types : BooleanFFlag<["-"], "eliminate-unused-debug-types">, Group<clang_ignored_f_Group>;
+defm float_store : BooleanFFlag<["-"], "float-store">, Group<clang_ignored_f_Group>;
+
include "CC1Options.td"
include "CLCompatOptions.td"
// RUN: %clang -### -S -O4 %s 2>&1 | FileCheck -check-prefix=CHECK-MAX-O %s
// CHECK-MAX-O: warning: -O4 is equivalent to -O3
// CHECK-MAX-O: -O3
+
+// Test that we don't error on these.
+// RUN: %clang -### -S \
+// RUN: -falign-functions -falign-functions=2 -fno-align-functions \
+// RUN: -fasynchronous-unwind-tables -fno-asynchronous-unwind-tables \
+// RUN: -fbuiltin -fno-builtin \
+// RUN: -ffloat-store -fno-float-store \
+// RUN: -feliminate-unused-debug-types -fno-eliminate-unused-debug-types \
+// RUN: -fgcse -fno-gcse \
+// RUN: -fident -fno-ident \
+// RUN: -fivopts -fno-ivopts \
+// RUN: -fnon-call-exceptions -fno-non-call-exceptions \
+// RUN: -fpermissive -fno-permissive \
+// RUN: -fprefetch-loop-arrays -fno-prefetch-loop-arrays \
+// RUN: -fprofile-correction -fno-profile-correction \
+// RUN: -fprofile-dir=bar \
+// RUN: -fprofile-use -fprofile-use=zed -fno-profile-use \
+// RUN: -fprofile-values -fno-profile-values \
+// RUN: -frounding-math -fno-rounding-math \
+// RUN: -fsee -fno-see \
+// RUN: -ftracer -fno-tracer \
+// RUN: -funroll-all-loops -fno-unroll-all-loops \
+// RUN: %s