Index: include/clang/Driver/Options.td =================================================================== --- include/clang/Driver/Options.td +++ include/clang/Driver/Options.td @@ -473,6 +473,7 @@ HelpText<"Emit all declarations, even if unused">; def fencoding_EQ : Joined<["-"], "fencoding=">, Group; def ferror_limit_EQ : Joined<["-"], "ferror-limit=">, Group, Flags<[CoreOption]>; +def fexec_charset_EQ : Joined<["-"], "fexec-charset=">, Group; def fexceptions : Flag<["-"], "fexceptions">, Group, Flags<[CC1Option]>, HelpText<"Enable support for exception handling">; def : Flag<["-"], "fexpensive-optimizations">, Group; @@ -790,6 +791,7 @@ def force__cpusubtype__ALL : Flag<["-"], "force_cpusubtype_ALL">; def force__flat__namespace : Flag<["-"], "force_flat_namespace">; def force__load : Separate<["-"], "force_load">; +def force_addr : Joined<["-"], "fforce-addr">, Group; def foutput_class_dir_EQ : Joined<["-"], "foutput-class-dir=">, Group; def fpack_struct : Flag<["-"], "fpack-struct">, Group; def fno_pack_struct : Flag<["-"], "fno-pack-struct">, Group; @@ -909,8 +911,6 @@ def fuse_cxa_atexit : Flag<["-"], "fuse-cxa-atexit">, Group; def fuse_init_array : Flag<["-"], "fuse-init-array">, Group, Flags<[CC1Option]>, HelpText<"Use .init_array instead of .ctors">; -def fno_var_tracking : Flag<["-"], "fno-var-tracking">, - Group; def fverbose_asm : Flag<["-"], "fverbose-asm">, Group; def fvisibility_EQ : Joined<["-"], "fvisibility=">, Group, HelpText<"Set the default symbol visibility for all global declarations">; @@ -1034,6 +1034,11 @@ def m64 : Flag<["-"], "m64">, Group, Flags<[DriverOption, CoreOption]>; def mx32 : Flag<["-"], "mx32">, Group, Flags<[DriverOption, CoreOption]>; def mabi_EQ : Joined<["-"], "mabi=">, Group; +def malign_functions_EQ : Joined<["-"], "malign-functions=">, Group; +def malign_loops_EQ : Joined<["-"], "malign-loops=">, Group; +def malign_jumps_EQ : Joined<["-"], "malign-jumps=">, Group; +def malign_double : Flag<["-"], "malign-double">, Group; +def mno_fancy_math_387 : Flag<["-"], "mno-fancy-math-387">, Group; def march_EQ : Joined<["-"], "march=">, Group; def masm_EQ : Joined<["-"], "masm=">, Group, Flags<[DriverOption]>; def mcmodel_EQ : Joined<["-"], "mcmodel=">, Group; @@ -1601,16 +1606,28 @@ // ignore it for now to avoid breaking builds that use it. def fdiagnostics_show_location_EQ : Joined<["-"], "fdiagnostics-show-location=">, Group; +defm fcheck_new : BooleanFFlag<"check-new">, Group; +defm no_caller_saves : BooleanFFlag<"no-caller-saves">, Group; +defm no_reorder_blocks : BooleanFFlag<"no-reorder-blocks">, Group; defm eliminate_unused_debug_types : BooleanFFlag<"eliminate-unused-debug-types">, Group; +defm var_tracking : BooleanFFlag<"var-tracking">, Group; defm float_store : BooleanFFlag<"float-store">, Group; +defm stack_check : BooleanFFlag<"stack-check">, Group; +defm friend_injection : BooleanFFlag<"friend-injection">, Group; defm function_attribute_list : BooleanFFlag<"function-attribute-list">, Group; +defm no_delete_null_pointer_checks : BooleanFFlag<"no-delete-null-pointer-checks">, + Group; defm gcse : BooleanFFlag<"gcse">, Group; defm gnu : BooleanFFlag<"gnu">, Group; defm ident : BooleanFFlag<"ident">, Group; defm implicit_templates : BooleanFFlag<"implicit-templates">, Group; +defm no_implement_inlines : BooleanFFlag<"no-implement-inlines">, Group; +defm no_fat_lto_objects : BooleanFFlag<"no-fat-lto-objects">, Group; def finline_limit_EQ : Joined<["-"], "finline-limit=">, Group; defm finline_limit : BooleanFFlag<"inline-limit">, Group; +defm no_inline_small_functions : BooleanFFlag<"no-inline-small-functions">, Group; defm ivopts : BooleanFFlag<"ivopts">, Group; +defm no_merge_constants : BooleanFFlag<"no-merge-constants">, Group; defm non_call_exceptions : BooleanFFlag<"non-call-exceptions">, Group; defm permissive : BooleanFFlag<"permissive">, Group; defm prefetch_loop_arrays : BooleanFFlag<"prefetch-loop-arrays">, Group; @@ -1627,11 +1644,15 @@ defm see : BooleanFFlag<"see">, Group; defm signaling_nans : BooleanFFlag<"signaling-nans">, Group; defm spec_constr_count : BooleanFFlag<"spec-constr-count">, Group; +defm no_schedule_insns2 : BooleanFFlag<"no-schedule-insns2">, Group; defm strength_reduce : BooleanFFlag<"strength-reduce">, Group; defm tls_model : BooleanFFlag<"tls-model">, Group; defm tracer : BooleanFFlag<"tracer">, Group; +defm no_tree_dce : BooleanFFlag<"no-tree-dce">, Group; +defm no_tree_ter : BooleanFFlag<"no-tree-ter">, Group; defm tree_salias : BooleanFFlag<"tree-salias">, Group; +defm no_tree_vrp : BooleanFFlag<"no-tree-vrp">, Group; defm tree_vectorizer_verbose : BooleanFFlag<"tree-vectorizer-verbose">, Group; defm unroll_all_loops : BooleanFFlag<"unroll-all-loops">, Group; defm unswitch_loops : BooleanFFlag<"unswitch-loops">, Group; Index: test/Driver/clang_f_opts.c =================================================================== --- test/Driver/clang_f_opts.c +++ test/Driver/clang_f_opts.c @@ -166,6 +166,30 @@ // RUN: -fstrength-reduce -fno-strength-reduce \ // RUN: -finline-limit=1000 \ // RUN: -finline-limit \ +// RUN: -fno-tree-dce \ +// RUN: -fno-tree-ter \ +// RUN: -fno-tree-vrp \ +// RUN: -fno-delete-null-pointer-checks \ +// RUN: -fno-inline-small-functions \ +// RUN: -fno-fat-lto-objects \ +// RUN: -fno-merge-constants \ +// RUN: -fno-caller-saves \ +// RUN: -fno-reorder-blocks \ +// RUN: -fno-stack-check \ +// RUN: -fno-schedule-insns2 \ +// RUN: -fcheck-new \ +// RUN: -fno-check-new \ +// RUN: -ffriend-injection \ +// RUN: -fno-implement-inlines \ +// RUN: -fvar-tracking \ +// RUN: -fno-var-tracking \ +// RUN: -fstack-check \ +// RUN: -fexec-charset=UTF-8 \ +// RUN: -fforce-addr \ +// RUN: -malign-functions=100 \ +// RUN: -malign-loops=100 \ +// RUN: -malign-jumps=100 \ +// RUN: -malign-double \ // RUN: %s 2>&1 | FileCheck --check-prefix=IGNORE %s // IGNORE-NOT: error: unknown argument