Skip gcc.dg/guality/example.c on hppa-linux.
[official-gcc.git] / gcc / common.opt
blobdba3fa886f9c629da496c24ef0c5d55f1fdf2202
1 ; Options for the language- and target-independent parts of the compiler.
3 ; Copyright (C) 2003-2021 Free Software Foundation, Inc.
5 ; This file is part of GCC.
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
10 ; version.
12 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 ; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 ; for more details.
17 ; You should have received a copy of the GNU General Public License
18 ; along with GCC; see the file COPYING3.  If not see
19 ; <http://www.gnu.org/licenses/>.
21 ; See the GCC internals manual (options.texi) for a description of this file's format.
23 ; Please try to keep this file in ASCII collating order.
25 Variable
26 int target_flags
28 Variable
29 int optimize
31 Variable
32 int optimize_size
34 Variable
35 int optimize_debug
37 ; Not used directly to control optimizations, only to save -Ofast
38 ; setting for "optimize" attributes.
39 Variable
40 int optimize_fast
42 ; True if this is the lto front end.  This is used to disable gimple
43 ; generation and lowering passes that are normally run on the output
44 ; of a front end.  These passes must be bypassed for lto since they
45 ; have already been done before the gimple was written.
46 Variable
47 bool in_lto_p = false
49 ; This variable is set to non-0 only by LTO front-end.  1 indicates that
50 ; the output produced will be used for incremental linking (thus weak symbols
51 ; can still be bound) and 2 indicates that the IL is going to be linked and
52 ; and output to LTO object file.
53 Variable
54 enum incremental_link flag_incremental_link = INCREMENTAL_LINK_NONE
56 ; 0 means straightforward implementation of complex divide acceptable.
57 ; 1 means wide ranges of inputs must work for complex divide.
58 ; 2 means C99-like requirements for complex multiply and divide.
59 Variable
60 int flag_complex_method = 1
62 Variable
63 int flag_default_complex_method = 1
65 ; Language specific warning pass for unused results.
66 Variable
67 bool flag_warn_unused_result = false
69 ; Nonzero if we should write GIMPLE bytecode for link-time optimization.
70 Variable
71 int flag_generate_lto
73 ; Nonzero if we should write GIMPLE bytecode for offload compilation.
74 Variable
75 int flag_generate_offload = 0
77 ; Nonzero means we should be saving declaration info into a .X file.
78 Variable
79 int flag_gen_aux_info = 0
81 ; Nonzero if we are compiling code for a shared library, zero for
82 ; executable.
83 Variable
84 int flag_shlib
86 ; These three are really VEC(char_p,heap) *.
88 Variable
89 void *flag_instrument_functions_exclude_functions
91 Variable
92 void *flag_instrument_functions_exclude_files
94 Variable
95 void *flag_ignored_attributes
97 ; Generic structs (e.g. templates not explicitly specialized)
98 ; may not have a compilation unit associated with them, and so
99 ; may need to be treated differently from ordinary structs.
101 ; Structs only handled by reference (indirectly), will also usually
102 ; not need as much debugging information.
104 Variable
105 enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
107 Variable
108 enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
110 ; True if we should exit after parsing options.
111 Variable
112 bool exit_after_options
114 ; Type(s) of debugging information we are producing (if any).  See
115 ; flag-types.h for the definitions of the different possible types of
116 ; debugging information.
117 Variable
118 uint32_t write_symbols = NO_DEBUG
120 ; Level of debugging information we are producing.  See flag-types.h
121 ; for the definitions of the different possible levels.
122 Variable
123 enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
125 ; Nonzero means use GNU-only extensions in the generated symbolic
126 ; debugging information.  Currently, this only has an effect when
127 ; write_symbols is set to DBX_DEBUG or XCOFF_DEBUG.
128 Variable
129 bool use_gnu_debug_info_extensions
131 ; Level of CTF debugging information we are producing.  See flag-types.h
132 ; for the definitions of the different possible levels.
133 Variable
134 enum ctf_debug_info_levels ctf_debug_info_level = CTFINFO_LEVEL_NONE
136 ; Original value of maximum field alignment in bytes, specified via
137 ; -fpack-struct=<value>.
138 Variable
139 unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
141 ; Type of stack check.
142 Variable
143 enum stack_check_type flag_stack_check = NO_STACK_CHECK
145 ; True if stack usage information needs to be computed.
146 Variable
147 bool flag_stack_usage_info = false
149 ; -dA causes debug commentary information to be produced in
150 ; the generated assembly code (to make it more readable).  This option
151 ; is generally only of use to those who actually need to read the
152 ; generated assembly code (perhaps while debugging the compiler itself).
153 ; Currently, this switch is only used by dwarf2out.c; however, it is intended
154 ; to be a catchall for printing debug information in the assembler file.
155 Variable
156 int flag_debug_asm
158 ; Balance between GNAT encodings and standard DWARF to emit.
159 Variable
160 enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT
162 ; -dP causes the rtl to be emitted as a comment in assembly.
163 Variable
164 int flag_dump_rtl_in_asm
166 ; Whether -da was passed (used only in handle_common_deferred_options).
167 Variable
168 bool flag_dump_all_passed
170 ; Other flags saying which kinds of debugging dump have been requested.
172 Variable
173 int rtl_dump_and_exit
175 Variable
176 int flag_print_asm_name
178 ; Name of top-level original source file (what was input to cpp).
179 ; This comes from the #-command at the beginning of the actual input.
180 ; If there isn't any there, then this is the cc1 input file name.
181 Variable
182 const char *main_input_filename
184 ; Pointer to base name in main_input_filename, with directories and a
185 ; single final extension removed, and the length of this base
186 ; name.
188 Variable
189 const char *main_input_basename
191 Variable
192 int main_input_baselength
194 ; The base name used for auxiliary output files.
195 ; dump_base_name minus dump_base_ext.
197 Variable
198 const char *aux_base_name
200 ; Which options have been printed by --help.
201 Variable
202 char *help_printed
204 ; Which enums have been printed by --help.  0 = not printed, no
205 ; relevant options seen, 1 = relevant option seen, not yet printed, 2
206 ; = printed.
207 Variable
208 char *help_enum_printed
210 ; The number of columns for --help output.
211 Variable
212 unsigned int help_columns
214 ; Whether this options structure has been through finish_options
215 Variable
216 bool flag_opts_finished
218 ; What the sanitizer should instrument
219 Variable
220 unsigned int flag_sanitize
222 ; What sanitizers should recover from errors
223 Variable
224 unsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT | SANITIZE_KERNEL_ADDRESS | SANITIZE_KERNEL_HWADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN)
226 ; What the coverage sanitizers should instrument
227 Variable
228 unsigned int flag_sanitize_coverage
230 ; Flag whether a prefix has been added to dump_base_name
231 Variable
232 bool dump_base_name_prefixed = false
234 ; What subset of registers should be zeroed on function return
235 Variable
236 unsigned int flag_zero_call_used_regs
239 Driver
241 -assemble
242 Driver Alias(S)
244 -compile
245 Driver Alias(c)
247 -completion=
248 Common Driver Joined Undocumented
249 Provide bash completion for options starting with provided string.
251 -coverage
252 Driver Alias(coverage)
254 -debug
255 Common Alias(g)
257 -dump
258 Common Separate Alias(d)
260 -dump=
261 Common Joined Alias(d)
263 -dumpbase
264 Driver Common Separate Alias(dumpbase)
266 -dumpbase-ext
267 Driver Common Separate Alias(dumpbase-ext)
269 -dumpdir
270 Driver Common Separate Alias(dumpdir)
272 -entry
273 Driver Separate Alias(e)
275 -entry=
276 Driver Joined Alias(e)
278 -extra-warnings
279 Common Warning Alias(Wextra)
281 -for-assembler
282 Driver Separate Alias(Xassembler)
284 -for-assembler=
285 Driver JoinedOrMissing Alias(Xassembler)
287 -for-linker
288 Driver Separate Alias(Xlinker)
290 -for-linker=
291 Driver JoinedOrMissing Alias(Xlinker)
293 -force-link
294 Driver Separate Alias(u)
296 -force-link=
297 Driver Joined Alias(u)
299 -help
300 Common Driver Var(help_flag)
301 Display this information.
303 -help=
304 Common Driver Joined
305 --help=<class>  Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params.
307 -language
308 Driver Separate Alias(x)
310 -language=
311 Driver Joined Alias(x)
313 -library-directory
314 Driver Separate Alias(L)
316 -library-directory=
317 Driver Joined Alias(L)
319 -no-canonical-prefixes
320 Driver Alias(no-canonical-prefixes)
322 -no-standard-libraries
323 Driver Alias(nostdlib)
325 -no-sysroot-suffix
326 Driver Var(no_sysroot_suffix)
328 -no-warnings
329 Common Alias(w)
331 -optimize
332 Common Alias(O)
334 -output
335 Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
337 -output=
338 Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
340 -pass-exit-codes
341 Driver Alias(pass-exit-codes)
343 -pedantic
344 Common Alias(Wpedantic)
346 -pedantic-errors
347 Common Alias(pedantic-errors)
349 -pie
350 Driver Alias(pie)
352 -static-pie
353 Driver Alias(static-pie)
355 -pipe
356 Driver Alias(pipe)
358 -prefix
359 Driver Separate Alias(B)
361 -prefix=
362 Driver JoinedOrMissing Alias(B)
364 -preprocess
365 Driver Alias(E)
367 -print-file-name
368 Driver Separate Alias(print-file-name=)
370 -print-file-name=
371 Driver JoinedOrMissing Alias(print-file-name=)
373 -print-libgcc-file-name
374 Driver Alias(print-libgcc-file-name)
376 -print-multi-directory
377 Driver Alias(print-multi-directory)
379 -print-multi-lib
380 Driver Alias(print-multi-lib)
382 -print-multi-os-directory
383 Driver Alias(print-multi-os-directory)
385 -print-multiarch
386 Driver Alias(print-multiarch)
388 -print-prog-name
389 Driver Separate Alias(print-prog-name=)
391 -print-prog-name=
392 Driver JoinedOrMissing Alias(print-prog-name=)
394 -print-search-dirs
395 Driver Alias(print-search-dirs)
397 -print-sysroot
398 Driver Alias(print-sysroot)
400 -print-sysroot-headers-suffix
401 Driver Alias(print-sysroot-headers-suffix)
403 -profile
404 Common Alias(p)
406 -save-temps
407 Driver Alias(save-temps)
409 -shared
410 Driver Alias(shared)
412 -specs
413 Driver Separate Alias(specs=)
415 -specs=
416 Driver Joined Alias(specs=)
418 -static
419 Driver Alias(static)
421 -symbolic
422 Driver Alias(symbolic)
424 -target-help
425 Common Driver
426 Alias for --help=target.
428 -time
429 Driver Alias(time)
431 -verbose
432 Driver Alias(v)
434 ;; The driver used to convert options such as --help into forms such
435 ;; as -fhelp; the following four entries are for compatibility with
436 ;; any direct uses of those (undocumented) -f forms
437 fhelp
438 Common Driver Alias(-help)
440 fhelp=
441 Common Driver Joined Alias(-help=)
443 ftarget-help
444 Common Driver Alias(-target-help)
446 fversion
447 Common Driver Alias(-version)
449 -sysroot
450 Driver Separate Alias(-sysroot=)
452 -sysroot=
453 Driver JoinedOrMissing
455 -version
456 Common Driver
459 Driver Joined Separate
462 Driver
465 Driver Joined Separate
468 Driver
471 Common JoinedOrMissing Optimization
472 -O<number>      Set optimization level to <number>.
475 Common Optimization
476 Optimize for space rather than speed.
478 Ofast
479 Common Optimization
480 Optimize for speed disregarding exact standards compliance.
483 Common Optimization
484 Optimize for debugging experience rather than speed or size.
487 Common Optimization
488 Optimize for space aggressively rather than speed.
491 Driver
494 Driver Negative(Qy)
497 Driver Negative(Qn)
500 Driver Joined Separate
503 Driver
506 Driver Joined Separate
508 Tbss
509 Driver Separate
511 Tbss=
512 Driver Joined
514 Tdata
515 Driver Separate
517 Tdata=
518 Driver Joined
520 Ttext
521 Driver Separate
523 Ttext=
524 Driver Joined
527 Common RejectNegative Warning Alias(Wextra)
528 This switch is deprecated; use -Wextra instead.
531 Driver JoinedOrMissing RejectNegative
534 Driver JoinedOrMissing RejectNegative
537 Driver JoinedOrMissing RejectNegative
539 Waggregate-return
540 Common Var(warn_aggregate_return) Warning
541 Warn about returning structures, unions or arrays.
543 Waggressive-loop-optimizations
544 Common Var(warn_aggressive_loop_optimizations) Init(1) Warning
545 Warn if a loop with constant number of iterations triggers undefined behavior.
547 Warray-bounds
548 Common Var(warn_array_bounds) Warning
549 Warn if an array is accessed out of bounds.
551 Warray-bounds=
552 Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2)
553 Warn if an array is accessed out of bounds.
555 Wattributes
556 Common Var(warn_attributes) Init(1) Warning
557 Warn about inappropriate attribute usage.
559 Wattributes=
560 Common Joined
561 Do not warn about specified attributes.
563 Wattribute-alias
564 Common Alias(Wattribute_alias=, 1, 0) Warning
565 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
567 Wattribute-alias=
568 Common Joined RejectNegative UInteger Var(warn_attribute_alias) Init(1) Warning IntegerRange(0, 2)
569 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
571 Wcannot-profile
572 Common Var(warn_cannot_profile) Init(1) Warning
573 Warn when profiling instrumentation was requested, but could not be applied to
574 a certain function.
576 Wcast-align
577 Common Var(warn_cast_align) Warning
578 Warn about pointer casts which increase alignment.
580 Wcast-align=strict
581 Common Var(warn_cast_align,2) Warning
582 Warn about pointer casts which increase alignment.
584 Wcpp
585 Common Var(warn_cpp) Init(1) Warning
586 Warn when a #warning directive is encountered.
588 Wattribute-warning
589 Common Var(warn_attribute_warning) Init(1) Warning
590 Warn about uses of __attribute__((warning)) declarations.
592 Wdeprecated
593 Common Var(warn_deprecated) Init(1) Warning
594 Warn if a deprecated compiler feature, class, method, or field is used.
596 Wdeprecated-declarations
597 Common Var(warn_deprecated_decl) Init(1) Warning
598 Warn about uses of __attribute__((deprecated)) declarations.
600 Wdisabled-optimization
601 Common Var(warn_disabled_optimization) Warning
602 Warn when an optimization pass is disabled.
604 Werror
605 Common Var(warnings_are_errors)
606 Treat all warnings as errors.
608 Werror=
609 Common Joined
610 Treat specified warning as error.
612 Wextra
613 Common Var(extra_warnings) Warning
614 Print extra (possibly unwanted) warnings.
616 Wfatal-errors
617 Common Var(flag_fatal_errors)
618 Exit on the first error occurred.
620 Wframe-larger-than=
621 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_frame_larger_than_size) Init(HOST_WIDE_INT_MAX)
622 -Wframe-larger-than=<byte-size> Warn if a function's stack frame requires in excess of <byte-size>.
624 Wno-frame-larger-than
625 Common Alias(Wframe-larger-than=,18446744073709551615EiB,none) Warning
626 Disable -Wframe-larger-than= warning.  Equivalent to -Wframe-larger-than=<SIZE_MAX> or larger.
628 Wfree-nonheap-object
629 Common Var(warn_free_nonheap_object) Init(1) Warning
630 Warn when attempting to free a non-heap object.
632 Whsa
633 Common Ignore Warning
634 Does nothing.  Preserved for backward compatibility.
636 Wimplicit-fallthrough
637 Common Alias(Wimplicit-fallthrough=,3,0) Warning
639 Wimplicit-fallthrough=
640 Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5)
641 Warn when a switch case falls through.
643 Winfinite-recursion
644 Var(warn_infinite_recursion) Warning
645 Warn for infinitely recursive calls.
647 Winline
648 Common Var(warn_inline) Warning Optimization
649 Warn when an inlined function cannot be inlined.
651 Winvalid-memory-model
652 Common Var(warn_invalid_memory_model) Init(1) Warning
653 Warn when an atomic memory model parameter is known to be outside the valid range.
655 Wlarger-than-
656 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
658 Wlarger-than=
659 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_larger_than_size) Init(HOST_WIDE_INT_MAX)
660 -Wlarger-than=<byte-size>       Warn if an object's size exceeds <byte-size>.
662 Wno-larger-than
663 Common Alias(Wlarger-than=,18446744073709551615EiB,none) Warning
664 Disable -Wlarger-than= warning.  Equivalent to -Wlarger-than=<SIZE_MAX> or larger.
666 Wnonnull-compare
667 Var(warn_nonnull_compare) Warning
668 Warn if comparing pointer parameter with nonnull attribute with NULL.
670 Wnull-dereference
671 Common Var(warn_null_dereference) Warning
672 Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
674 Wunsafe-loop-optimizations
675 Common Ignore Warning
676 Does nothing. Preserved for backward compatibility.
678 Wmissing-noreturn
679 Common Warning Alias(Wsuggest-attribute=noreturn)
681 Wodr
682 Common Var(warn_odr_violations) Init(1) Warning
683 Warn about some C++ One Definition Rule violations during link time optimization.
685 Woverflow
686 Common Var(warn_overflow) Init(1) Warning
687 Warn about overflow in arithmetic expressions.
689 Wlto-type-mismatch
690 Common Var(warn_lto_type_mismatch) Init(1) Warning
691 During link time optimization warn about mismatched types of global declarations.
693 Wpacked
694 Common Var(warn_packed) Warning
695 Warn when the packed attribute has no effect on struct layout.
697 Wpadded
698 Common Var(warn_padded) Warning
699 Warn when padding is required to align structure members.
701 Wpedantic
702 Common Var(pedantic) Init(0) Warning
703 Issue warnings needed for strict compliance to the standard.
705 Wreturn-local-addr
706 Common Var(warn_return_local_addr) Init(1) Warning
707 Warn about returning a pointer/reference to a local or temporary variable.
709 Wshadow
710 Common Var(warn_shadow) Warning
711 Warn when one variable shadows another.  Same as -Wshadow=global.
713 Wshadow=global
714 Common Warning Alias(Wshadow)
715 Warn when one variable shadows another (globally).
717 Wshadow=local
718 Common Var(warn_shadow_local) Warning EnabledBy(Wshadow)
719 Warn when one local variable shadows another local variable or parameter.
721 Wshadow-local
722 Common Warning Undocumented Alias(Wshadow=local)
724 Wshadow=compatible-local
725 Common Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local)
726 Warn when one local variable shadows another local variable or parameter of compatible type.
728 Wshadow-compatible-local
729 Common Warning Undocumented Alias(Wshadow=compatible-local)
731 Wstack-protector
732 Common Var(warn_stack_protect) Warning
733 Warn when not issuing stack smashing protection for some reason.
735 Wstack-usage=
736 Common Joined RejectNegative Host_Wide_Int ByteSize Var(warn_stack_usage) Warning Init(HOST_WIDE_INT_MAX)
737 -Wstack-usage=<byte-size>       Warn if stack usage might exceed <byte-size>.
739 Wno-stack-usage
740 Common Alias(Wstack-usage=,18446744073709551615EiB,none) Warning
741 Disable Wstack-usage= warning.  Equivalent to Wstack-usage=<SIZE_MAX> or larger.
743 Wstrict-aliasing
744 Common Warning
745 Warn about code which might break strict aliasing rules.
747 Wstrict-aliasing=
748 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
749 Warn about code which might break strict aliasing rules.
751 Wstrict-overflow
752 Common Warning
753 Warn about optimizations that assume that signed overflow is undefined.
755 Wstrict-overflow=
756 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
757 Warn about optimizations that assume that signed overflow is undefined.
759 Wsuggest-attribute=cold
760 Common Var(warn_suggest_attribute_cold) Warning
761 Warn about functions which might be candidates for __attribute__((cold)).
763 Wsuggest-attribute=const
764 Common Var(warn_suggest_attribute_const) Warning
765 Warn about functions which might be candidates for __attribute__((const)).
767 Wsuggest-attribute=pure
768 Common Var(warn_suggest_attribute_pure) Warning
769 Warn about functions which might be candidates for __attribute__((pure)).
771 Wsuggest-attribute=noreturn
772 Common Var(warn_suggest_attribute_noreturn) Warning
773 Warn about functions which might be candidates for __attribute__((noreturn)).
775 Wsuggest-attribute=malloc
776 Common Var(warn_suggest_attribute_malloc) Warning
777 Warn about functions which might be candidates for __attribute__((malloc)).
779 Wsuggest-final-types
780 Common Var(warn_suggest_final_types) Warning
781 Warn about C++ polymorphic types where adding final keyword would improve code quality.
783 Wsuggest-final-methods
784 Common Var(warn_suggest_final_methods) Warning
785 Warn about C++ virtual methods where adding final keyword would improve code quality.
787 Wswitch-unreachable
788 Common Var(warn_switch_unreachable) Warning Init(1)
789 Warn about statements between switch's controlling expression and the first
790 case.
792 Wsystem-headers
793 Common Var(warn_system_headers) Warning
794 Do not suppress warnings from system headers.
796 Wtrampolines
797 Common Var(warn_trampolines) Warning
798 Warn whenever a trampoline is generated.
800 Wtype-limits
801 Common Var(warn_type_limits) Warning EnabledBy(Wextra)
802 Warn if a comparison is always true or always false due to the limited range of the data type.
804 Wuninitialized
805 Common Var(warn_uninitialized) Warning EnabledBy(Wextra)
806 Warn about uninitialized automatic variables.
808 Wmaybe-uninitialized
809 Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
810 Warn about maybe uninitialized automatic variables.
812 Wunreachable-code
813 Common Ignore Warning
814 Does nothing. Preserved for backward compatibility.
816 Wunused
817 Common Var(warn_unused) Init(0) Warning
818 Enable all -Wunused- warnings.
820 Wunused-but-set-parameter
821 Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
822 Warn when a function parameter is only set, otherwise unused.
824 Wunused-but-set-variable
825 Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
826 Warn when a variable is only set, otherwise unused.
828 Wunused-function
829 Common Var(warn_unused_function) Warning EnabledBy(Wunused)
830 Warn when a function is unused.
832 Wunused-label
833 Common Var(warn_unused_label) Warning EnabledBy(Wunused)
834 Warn when a label is unused.
836 Wunused-parameter
837 Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
838 Warn when a function parameter is unused.
840 Wunused-value
841 Common Var(warn_unused_value) Warning EnabledBy(Wunused)
842 Warn when an expression value is unused.
844 Wunused-variable
845 Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
846 Warn when a variable is unused.
848 Wcoverage-mismatch
849 Common Var(warn_coverage_mismatch) Init(1) Warning
850 Warn in case profiles in -fprofile-use do not match.
852 Wcoverage-invalid-line-number
853 Common Var(warn_coverage_invalid_linenum) Init(1) Warning
854 Warn in case a function ends earlier than it begins due to an invalid linenum macros.
856 Wmissing-profile
857 Common Var(warn_missing_profile) Init(1) Warning
858 Warn in case profiles in -fprofile-use do not exist.
860 Wvector-operation-performance
861 Common Var(warn_vector_operation_performance) Warning
862 Warn when a vector operation is compiled outside the SIMD.
864 Wtsan
865 Common Var(warn_tsan) Init(1) Warning
866 Warn about unsupported features in ThreadSanitizer.
868 Xassembler
869 Driver Separate
871 Xlinker
872 Driver Separate
874 Xpreprocessor
875 Driver Separate
878 Driver
880 aux-info
881 Common Separate Var(aux_info_file_name)
882 -aux-info <file>        Emit declaration information into <file>.
884 aux-info=
885 Common Joined Alias(aux-info)
887 coverage
888 Driver
891 Driver
894 Common Joined
895 -d<letters>     Enable dumps from specific passes of the compiler.
897 dumpbase
898 Driver Common Separate Var(dump_base_name)
899 -dumpbase <file>        Set the file basename to be used for dumps.
901 dumpbase-ext
902 Driver Common Separate Var(dump_base_ext)
903 -dumpbase-ext .<ext>    Drop a trailing .<ext> from the dump basename to name auxiliary output files.
905 dumpdir
906 Driver Common Separate Var(dump_dir_name)
907 -dumpdir <dir>  Set the directory name to be used for dumps.
909 dumpmachine
910 Driver
912 dumpspecs
913 Driver
915 dumpversion
916 Driver
918 dumpfullversion
919 Driver
922 Driver Joined Separate
924 ; This option has historically been passed down to the linker by an
925 ; accident of a %{e*} spec, so ensure it continues to be passed down
926 ; as a single option.  The supported option for this purpose is
927 ; -rdynamic.  See PR 47390.
928 export-dynamic
929 Driver Undocumented
931 ; The version of the C++ ABI in use.  The following values are allowed:
933 ; 0: The version of the ABI believed most conformant with the C++ ABI
934 ;    specification.  This ABI may change as bugs are discovered and fixed.
935 ;    Therefore, 0 will not necessarily indicate the same ABI in different
936 ;    versions of G++.
938 ; 1: The version of the ABI first used in G++ 3.2.  No longer selectable.
940 ; 2: The version of the ABI first used in G++ 3.4, and the default
941 ;    until GCC 4.9.
943 ; 3: The version of the ABI that fixes the missing underscore
944 ;    in template non-type arguments of pointer type.
946 ; 4: The version of the ABI that introduces unambiguous mangling of
947 ;    vector types.  First selectable in G++ 4.5.
949 ; 5: The version of the ABI that ignores attribute const/noreturn
950 ;    in function pointer mangling, and corrects mangling of decltype and
951 ;    function parameters used in other parameters and the return type.
952 ;    First selectable in G++ 4.6.
954 ; 6: The version of the ABI that doesn't promote scoped enums to int and
955 ;    changes the mangling of template argument packs, const/static_cast,
956 ;    prefix ++ and --, and a class scope function used as a template
957 ;    argument.
958 ;    First selectable in G++ 4.7.
960 ; 7: The version of the ABI that treats nullptr_t as a builtin type and
961 ;    corrects the mangling of lambdas in default argument scope.
962 ;    First selectable in G++ 4.8.
964 ; 8: The version of the ABI that corrects the substitution behavior of
965 ;    function types with function-cv-qualifiers.
966 ;    First selectable in G++ 4.9 and default in G++ 5.
968 ; 9: The version of the ABI that corrects the alignment of nullptr_t.
969 ;    First selectable and default in G++ 5.2.
971 ; 10: The version of the ABI that mangles attributes that affect type
972 ;     identity, such as ia32 calling convention attributes (stdcall, etc.)
973 ;     Default in G++ 6 (set in c_common_post_options).
975 ; 11: The version of the ABI that corrects mangling of sizeof... expressions
976 ;     and introduces new inheriting constructor handling.
977 ;     Default in G++ 7.
979 ; 12: Corrects the calling convention for classes with only deleted copy/move
980 ;     constructors and changes passing/returning of empty records.
981 ;     Default in G++ 8.1.
983 ; 13: Fixes the accidental change in 12 to the calling convention for classes
984 ;     with deleted copy constructor and trivial move constructor.
985 ;     Default in G++ 8.2.
987 ; 14: Corrects the mangling of nullptr expression.
988 ;     Default in G++ 10.
990 ; 15: Corrects G++ 10 ABI tag regression [PR98481].
991 ;     Available, but not default, in G++ 10.3.
993 ; 16: Changes the mangling of __alignof__ to be distinct from that of alignof.
994 ;     Adds missing 'on' in mangling of operator names in some cases.
995 ;     Default in G++ 11.
997 ; 17: Fixes layout of classes that inherit from aggregate classes with default
998 ;     member initializers in C++14 and up.
999 ;     Default in G++ 12.
1001 ; Additional positive integers will be assigned as new versions of
1002 ; the ABI become the default version of the ABI.
1003 fabi-version=
1004 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
1005 The version of the C++ ABI in use.
1007 faggressive-loop-optimizations
1008 Common Var(flag_aggressive_loop_optimizations) Optimization Init(1)
1009 Aggressively optimize loops using language constraints.
1011 falign-functions
1012 Common Var(flag_align_functions) Optimization
1013 Align the start of functions.
1015 falign-functions=
1016 Common RejectNegative Joined Var(str_align_functions) Optimization
1018 flimit-function-alignment
1019 Common Var(flag_limit_function_alignment) Optimization Init(0)
1021 falign-jumps
1022 Common Var(flag_align_jumps) Optimization
1023 Align labels which are only reached by jumping.
1025 falign-jumps=
1026 Common RejectNegative Joined Var(str_align_jumps) Optimization
1028 falign-labels
1029 Common Var(flag_align_labels) Optimization
1030 Align all labels.
1032 falign-labels=
1033 Common RejectNegative Joined Var(str_align_labels) Optimization
1035 falign-loops
1036 Common Var(flag_align_loops) Optimization
1037 Align the start of loops.
1039 falign-loops=
1040 Common RejectNegative Joined Var(str_align_loops) Optimization
1042 fallow-store-data-races
1043 Common Var(flag_store_data_races) Optimization
1044 Allow the compiler to introduce new data races on stores.
1046 fanalyzer
1047 Common Var(flag_analyzer)
1048 Enable static analysis pass.
1050 fargument-alias
1051 Common Ignore
1052 Does nothing. Preserved for backward compatibility.
1054 fargument-noalias
1055 Common Ignore
1056 Does nothing. Preserved for backward compatibility.
1058 fargument-noalias-global
1059 Common Ignore
1060 Does nothing. Preserved for backward compatibility.
1062 fargument-noalias-anything
1063 Common Ignore
1064 Does nothing. Preserved for backward compatibility.
1066 fsanitize=
1067 Common Driver Joined
1068 Select what to sanitize.
1070 fsanitize-coverage=
1071 Common Joined RejectNegative Enum(sanitize_coverage)
1072 Select type of coverage sanitization.
1074 Enum
1075 Name(sanitize_coverage) Type(int)
1077 EnumValue
1078 Enum(sanitize_coverage) String(trace-pc) Value(SANITIZE_COV_TRACE_PC)
1080 EnumValue
1081 Enum(sanitize_coverage) String(trace-cmp) Value(SANITIZE_COV_TRACE_CMP)
1083 fasan-shadow-offset=
1084 Common Joined RejectNegative Var(common_deferred_options) Defer
1085 -fasan-shadow-offset=<number>   Use custom shadow memory offset.
1087 fsanitize-sections=
1088 Common Joined RejectNegative Var(common_deferred_options) Defer
1089 -fsanitize-sections=<sec1,sec2,...>     Sanitize global variables
1090 in user-defined sections.
1092 fsanitize-recover=
1093 Common Joined
1094 After diagnosing undefined behavior attempt to continue execution.
1096 fsanitize-recover
1097 Common
1098 This switch is deprecated; use -fsanitize-recover= instead.
1100 fsanitize-address-use-after-scope
1101 Common Driver Var(flag_sanitize_address_use_after_scope) Init(0)
1103 fsanitize-undefined-trap-on-error
1104 Common Driver Var(flag_sanitize_undefined_trap_on_error) Init(0)
1105 Use trap instead of a library function for undefined behavior sanitization.
1107 fasynchronous-unwind-tables
1108 Common Var(flag_asynchronous_unwind_tables) Optimization
1109 Generate unwind tables that are exact at each instruction boundary.
1111 fauto-inc-dec
1112 Common Var(flag_auto_inc_dec) Init(1) Optimization
1113 Generate auto-inc/dec instructions.
1115 fauto-profile
1116 Common Var(flag_auto_profile)
1117 Use sample profile information for call graph node weights. The default
1118 profile file is fbdata.afdo in 'pwd'.
1120 fauto-profile=
1121 Common Joined RejectNegative Var(auto_profile_file)
1122 Use sample profile information for call graph node weights. The profile
1123 file is specified in the argument.
1125 ; -fcheck-bounds causes gcc to generate array bounds checks.
1126 ; For C, C++ and ObjC: defaults off.
1127 ; For Java: defaults to on.
1128 ; For Fortran: defaults to off.
1129 fbounds-check
1130 Common Var(flag_bounds_check)
1131 Generate code to check bounds before indexing arrays.
1133 fbranch-count-reg
1134 Common Var(flag_branch_on_count_reg) Optimization
1135 Replace add, compare, branch with branch on count register.
1137 fbranch-probabilities
1138 Common Var(flag_branch_probabilities) Optimization
1139 Use profiling information for branch probabilities.
1141 fbranch-target-load-optimize
1142 Common Ignore
1143 Does nothing.  Preserved for backward compatibility.
1145 fbranch-target-load-optimize2
1146 Common Ignore
1147 Does nothing.  Preserved for backward compatibility.
1149 fbtr-bb-exclusive
1150 Common Ignore
1151 Does nothing.  Preserved for backward compatibility.
1153 fcallgraph-info
1154 Common RejectNegative Var(flag_callgraph_info) Init(NO_CALLGRAPH_INFO);
1155 Output callgraph information on a per-file basis.
1157 fcallgraph-info=
1158 Common RejectNegative Joined
1159 Output callgraph information on a per-file basis with decorations.
1161 fcall-saved-
1162 Common Joined RejectNegative Var(common_deferred_options) Defer
1163 -fcall-saved-<register> Mark <register> as being preserved across functions.
1165 fcall-used-
1166 Common Joined RejectNegative Var(common_deferred_options) Defer
1167 -fcall-used-<register>  Mark <register> as being corrupted by function calls.
1169 ; Nonzero for -fcaller-saves: allocate values in regs that need to
1170 ; be saved across function calls, if that produces overall better code.
1171 ; Optional now, so people can test it.
1172 fcaller-saves
1173 Common Var(flag_caller_saves) Optimization
1174 Save registers around function calls.
1176 fcheck-data-deps
1177 Common Ignore
1178 This switch is deprecated; do not use.
1180 fcheck-new
1181 Common Var(flag_check_new)
1182 Check the return value of new in C++.
1184 fchecking
1185 Common Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0)
1186 Perform internal consistency checkings.
1188 fchecking=
1189 Common Joined RejectNegative UInteger Var(flag_checking)
1190 Perform internal consistency checkings.
1192 fcode-hoisting
1193 Common Var(flag_code_hoisting) Optimization
1194 Enable code hoisting.
1196 fcombine-stack-adjustments
1197 Common Var(flag_combine_stack_adjustments) Optimization
1198 Looks for opportunities to reduce stack adjustments and stack references.
1200 fcommon
1201 Common Var(flag_no_common,0) Init(1)
1202 Put uninitialized globals in the common section.
1204 fcompare-debug
1205 Driver
1206 ; Converted by the driver to -fcompare-debug= options.
1208 fcompare-debug=
1209 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
1210 -fcompare-debug[=<opts>]        Compile with and without e.g. -gtoggle, and compare the final-insns dump.
1212 fcompare-debug-second
1213 Common Driver RejectNegative Var(flag_compare_debug)
1214 Run only the second compilation of -fcompare-debug.
1216 fcompare-elim
1217 Common Var(flag_compare_elim_after_reload) Optimization
1218 Perform comparison elimination after register allocation has finished.
1220 fconserve-stack
1221 Common Var(flag_conserve_stack) Optimization
1222 Do not perform optimizations increasing noticeably stack usage.
1224 fcprop-registers
1225 Common Var(flag_cprop_registers) Optimization
1226 Perform a register copy-propagation optimization pass.
1228 fcrossjumping
1229 Common Var(flag_crossjumping) Optimization
1230 Perform cross-jumping optimization.
1232 fcse-follow-jumps
1233 Common Var(flag_cse_follow_jumps) Optimization
1234 When running CSE, follow jumps to their targets.
1236 fcse-skip-blocks
1237 Common Ignore
1238 Does nothing.  Preserved for backward compatibility.
1240 fcx-limited-range
1241 Common Var(flag_cx_limited_range) Optimization SetByCombined
1242 Omit range reduction step when performing complex division.
1244 fcx-fortran-rules
1245 Common Var(flag_cx_fortran_rules) Optimization
1246 Complex multiplication and division follow Fortran rules.
1248 fdata-sections
1249 Common Var(flag_data_sections)
1250 Place data items into their own section.
1252 fdbg-cnt-list
1253 Common Var(flag_dbg_cnt_list)
1254 List all available debugging counters with their limits and counts.
1256 fdbg-cnt=
1257 Common RejectNegative Joined Var(common_deferred_options) Defer
1258 -fdbg-cnt=<counter>[:<lower_limit1>-]<upper_limit1>[:<lower_limit2>-<upper_limit2>:...][,<counter>:...] Set the debug counter limit.
1260 fdebug-prefix-map=
1261 Common Joined RejectNegative Var(common_deferred_options) Defer
1262 -fdebug-prefix-map=<old>=<new>  Map one directory name to another in debug information.
1264 ffile-prefix-map=
1265 Common Joined RejectNegative Var(common_deferred_options) Defer
1266 -ffile-prefix-map=<old>=<new>   Map one directory name to another in compilation result.
1268 fdebug-types-section
1269 Common Var(flag_debug_types_section) Init(0)
1270 Output .debug_types section when using DWARF v4 debuginfo.
1272 ; Nonzero for -fdefer-pop: don't pop args after each function call
1273 ; instead save them up to pop many calls' args with one insns.
1274 fdefer-pop
1275 Common Var(flag_defer_pop) Optimization
1276 Defer popping functions args from stack until later.
1278 fdelayed-branch
1279 Common Var(flag_delayed_branch) Optimization
1280 Attempt to fill delay slots of branch instructions.
1282 fdelete-dead-exceptions
1283 Common Var(flag_delete_dead_exceptions) Init(0) Optimization
1284 Delete dead instructions that may throw exceptions.
1286 fdelete-null-pointer-checks
1287 Common Var(flag_delete_null_pointer_checks) Init(-1) Optimization
1288 Delete useless null pointer checks.
1290 fdevirtualize-at-ltrans
1291 Common Var(flag_ltrans_devirtualize)
1292 Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
1294 fdevirtualize-speculatively
1295 Common Var(flag_devirtualize_speculatively) Optimization
1296 Perform speculative devirtualization.
1298 fdevirtualize
1299 Common Var(flag_devirtualize) Optimization
1300 Try to convert virtual calls to direct ones.
1302 fdiagnostics-show-location=
1303 Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
1304 -fdiagnostics-show-location=[once|every-line]   How often to emit source location at the beginning of line-wrapped diagnostics.
1306 ; Required for these enum values.
1307 SourceInclude
1308 pretty-print.h
1310 Enum
1311 Name(diagnostic_prefixing_rule) Type(int)
1313 EnumValue
1314 Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
1316 EnumValue
1317 Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
1319 fdiagnostics-show-caret
1320 Common Var(flag_diagnostics_show_caret) Init(1)
1321 Show the source line with a caret indicating the column.
1323 fdiagnostics-show-labels
1324 Common Var(flag_diagnostics_show_labels) Init(1)
1325 Show labels annotating ranges of source code when showing source.
1327 fdiagnostics-show-line-numbers
1328 Common Var(flag_diagnostics_show_line_numbers) Init(1)
1329 Show line numbers in the left margin when showing source.
1331 fdiagnostics-color
1332 Common Alias(fdiagnostics-color=,always,never)
1335 fdiagnostics-color=
1336 Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
1337 -fdiagnostics-color=[never|always|auto] Colorize diagnostics.
1339 ; Required for these enum values.
1340 SourceInclude
1341 diagnostic-color.h
1343 Enum
1344 Name(diagnostic_color_rule) Type(int)
1346 EnumValue
1347 Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
1349 EnumValue
1350 Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
1352 EnumValue
1353 Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
1355 fdiagnostics-urls=
1356 Driver Common Joined RejectNegative Var(flag_diagnostics_show_urls) Enum(diagnostic_url_rule) Init(DIAGNOSTICS_URL_AUTO)
1357 -fdiagnostics-urls=[never|always|auto]  Embed URLs in diagnostics.
1359 ; Required for these enum values.
1360 SourceInclude
1361 diagnostic-url.h
1363 Enum
1364 Name(diagnostic_url_rule) Type(int)
1366 EnumValue
1367 Enum(diagnostic_url_rule) String(never) Value(DIAGNOSTICS_URL_NO)
1369 EnumValue
1370 Enum(diagnostic_url_rule) String(always) Value(DIAGNOSTICS_URL_YES)
1372 EnumValue
1373 Enum(diagnostic_url_rule) String(auto) Value(DIAGNOSTICS_URL_AUTO)
1375 fdiagnostics-column-unit=
1376 Common Joined RejectNegative Enum(diagnostics_column_unit)
1377 -fdiagnostics-column-unit=[display|byte]        Select whether column numbers are output as display columns (default) or raw bytes.
1379 fdiagnostics-column-origin=
1380 Common Joined RejectNegative UInteger
1381 -fdiagnostics-column-origin=<number>    Set the number of the first column.  The default is 1-based as per GNU style, but some utilities may expect 0-based, for example.
1383 fdiagnostics-format=
1384 Common Joined RejectNegative Enum(diagnostics_output_format)
1385 -fdiagnostics-format=[text|json]        Select output format.
1387 fdiagnostics-escape-format=
1388 Common Joined RejectNegative Enum(diagnostics_escape_format)
1389 -fdiagnostics-escape-format=[unicode|bytes]     Select how to escape non-printable-ASCII bytes in the source for diagnostics that suggest it.
1391 ; Required for these enum values.
1392 SourceInclude
1393 diagnostic.h
1395 Enum
1396 Name(diagnostics_column_unit) Type(int)
1398 EnumValue
1399 Enum(diagnostics_column_unit) String(display) Value(DIAGNOSTICS_COLUMN_UNIT_DISPLAY)
1401 EnumValue
1402 Enum(diagnostics_column_unit) String(byte) Value(DIAGNOSTICS_COLUMN_UNIT_BYTE)
1404 Enum
1405 Name(diagnostics_escape_format) Type(int)
1407 EnumValue
1408 Enum(diagnostics_escape_format) String(unicode) Value(DIAGNOSTICS_ESCAPE_FORMAT_UNICODE)
1410 EnumValue
1411 Enum(diagnostics_escape_format) String(bytes) Value(DIAGNOSTICS_ESCAPE_FORMAT_BYTES)
1413 Enum
1414 Name(diagnostics_output_format) Type(int)
1416 EnumValue
1417 Enum(diagnostics_output_format) String(text) Value(DIAGNOSTICS_OUTPUT_FORMAT_TEXT)
1419 EnumValue
1420 Enum(diagnostics_output_format) String(json) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON)
1422 fdiagnostics-parseable-fixits
1423 Common Var(flag_diagnostics_parseable_fixits)
1424 Print fix-it hints in machine-readable form.
1426 fdiagnostics-generate-patch
1427 Common Var(flag_diagnostics_generate_patch)
1428 Print fix-it hints to stderr in unified diff format.
1430 fdiagnostics-show-option
1431 Common Var(flag_diagnostics_show_option) Init(1)
1432 Amend appropriate diagnostic messages with the command line option that controls them.
1434 fdiagnostics-show-cwe
1435 Common Var(flag_diagnostics_show_cwe) Init(1)
1436 Print CWE identifiers for diagnostic messages, where available.
1438 fdiagnostics-path-format=
1439 Common Joined RejectNegative Var(flag_diagnostics_path_format) Enum(diagnostic_path_format) Init(DPF_INLINE_EVENTS)
1440 Specify how to print any control-flow path associated with a diagnostic.
1442 fdiagnostics-plain-output
1443 Driver Common RejectNegative
1444 Turn off any diagnostics features that complicate the output, such as line numbers, color, and warning URLs.
1446 ftabstop=
1447 Common Joined RejectNegative UInteger
1448 -ftabstop=<number>      Distance between tab stops for column reporting.
1450 Enum
1451 Name(diagnostic_path_format) Type(int)
1453 EnumValue
1454 Enum(diagnostic_path_format) String(none) Value(DPF_NONE)
1456 EnumValue
1457 Enum(diagnostic_path_format) String(separate-events) Value(DPF_SEPARATE_EVENTS)
1459 EnumValue
1460 Enum(diagnostic_path_format) String(inline-events) Value(DPF_INLINE_EVENTS)
1462 fdiagnostics-show-path-depths
1463 Common Var(flag_diagnostics_show_path_depths) Init(0)
1464 Show stack depths of events in paths.
1466 fdiagnostics-minimum-margin-width=
1467 Common Joined UInteger Var(diagnostics_minimum_margin_width) Init(6)
1468 Set minimum width of left margin of source code when showing source.
1470 fdisable-
1471 Common Joined RejectNegative Var(common_deferred_options) Defer
1472 -fdisable-[tree|rtl|ipa]-<pass>=range1+range2   Disable an optimization pass.
1474 fenable-
1475 Common Joined RejectNegative Var(common_deferred_options) Defer
1476 -fenable-[tree|rtl|ipa]-<pass>=range1+range2    Enable an optimization pass.
1478 fdump-
1479 Common Joined RejectNegative Var(common_deferred_options) Defer
1480 -fdump-<type>   Dump various compiler internals to a file.
1482 fdump-final-insns
1483 Driver RejectNegative
1485 fdump-final-insns=
1486 Common RejectNegative Joined Var(flag_dump_final_insns)
1487 -fdump-final-insns=filename     Dump to filename the insns at the end of translation.
1489 fdump-go-spec=
1490 Common RejectNegative Joined Var(flag_dump_go_spec)
1491 -fdump-go-spec=filename Write all declarations to file as Go code.
1493 fdump-noaddr
1494 Common Var(flag_dump_noaddr)
1495 Suppress output of addresses in debugging dumps.
1497 freport-bug
1498 Common Driver Var(flag_report_bug)
1499 Collect and dump debug information into temporary file if ICE in C/C++
1500 compiler occurred.
1502 fdump-internal-locations
1503 Common Var(flag_dump_locations) Init(0)
1504 Dump detailed information on GCC's internal representation of source code locations.
1506 fdump-passes
1507 Common Var(flag_dump_passes) Init(0)
1508 Dump optimization passes.
1510 fdump-unnumbered
1511 Common Var(flag_dump_unnumbered)
1512 Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
1514 fdump-unnumbered-links
1515 Common Var(flag_dump_unnumbered_links)
1516 Suppress output of previous and next insn numbers in debugging dumps.
1518 fdwarf2-cfi-asm
1519 Common Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1520 Enable CFI tables via GAS assembler directives.
1522 fearly-inlining
1523 Common Var(flag_early_inlining) Init(1) Optimization
1524 Perform early inlining.
1526 feliminate-dwarf2-dups
1527 Common Ignore
1528 Does nothing.  Preserved for backward compatibility.
1530 fipa-sra
1531 Common Var(flag_ipa_sra) Init(0) Optimization
1532 Perform interprocedural reduction of aggregates.
1534 feliminate-unused-debug-symbols
1535 Common Var(flag_debug_only_used_symbols) Init(1)
1536 Perform unused symbol elimination in debug info.
1538 feliminate-unused-debug-types
1539 Common Var(flag_eliminate_unused_debug_types) Init(1)
1540 Perform unused type elimination in debug info.
1542 femit-class-debug-always
1543 Common Var(flag_emit_class_debug_always) Init(0)
1544 Do not suppress C++ class debug information.
1546 fexceptions
1547 Common Var(flag_exceptions) Optimization EnabledBy(fnon-call-exceptions)
1548 Enable exception handling.
1550 fexpensive-optimizations
1551 Common Var(flag_expensive_optimizations) Optimization
1552 Perform a number of minor, expensive optimizations.
1554 fexcess-precision=
1555 Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision) Init(EXCESS_PRECISION_DEFAULT) Optimization SetByCombined
1556 -fexcess-precision=[fast|standard|16]   Specify handling of excess floating-point precision.
1558 Enum
1559 Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1561 EnumValue
1562 Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1564 EnumValue
1565 Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1567 EnumValue
1568 Enum(excess_precision) String(16) Value(EXCESS_PRECISION_FLOAT16)
1570 ; Whether we permit the extended set of values for FLT_EVAL_METHOD
1571 ; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11.
1572 fpermitted-flt-eval-methods=
1573 Common Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT)
1574 -fpermitted-flt-eval-methods=[c11|ts-18661]     Specify which values of FLT_EVAL_METHOD are permitted.
1576 Enum
1577 Name(permitted_flt_eval_methods) Type(enum permitted_flt_eval_methods) UnknownError(unknown specification for the set of FLT_EVAL_METHOD values to permit %qs)
1579 EnumValue
1580 Enum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11)
1582 EnumValue
1583 Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
1585 ffast-math
1586 Common Optimization
1588 ffat-lto-objects
1589 Common Var(flag_fat_lto_objects)
1590 Output lto objects containing both the intermediate language and binary output.
1592 ffinite-math-only
1593 Common Var(flag_finite_math_only) Optimization SetByCombined
1594 Assume no NaNs or infinities are generated.
1596 ffinite-loops
1597 Common Var(flag_finite_loops) Optimization Init(0)
1598 Assume that loops with an exit will terminate and not loop indefinitely.
1600 ffixed-
1601 Common Joined RejectNegative Var(common_deferred_options) Defer
1602 -ffixed-<register>      Mark <register> as being unavailable to the compiler.
1604 ffloat-store
1605 Common Var(flag_float_store) Optimization
1606 Don't allocate floats and doubles in extended-precision registers.
1608 fforce-addr
1609 Common Ignore
1610 Does nothing.  Preserved for backward compatibility.
1612 fforward-propagate
1613 Common Var(flag_forward_propagate) Optimization
1614 Perform a forward propagation pass on RTL.
1616 ffp-contract=
1617 Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
1618 -ffp-contract=[off|on|fast]     Perform floating-point expression contraction.
1620 Enum
1621 Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1623 EnumValue
1624 Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1626 ; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1627 EnumValue
1628 Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1630 EnumValue
1631 Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1633 ffp-int-builtin-inexact
1634 Common Var(flag_fp_int_builtin_inexact) Init(1) Optimization
1635 Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
1637 ; Nonzero means don't put addresses of constant functions in registers.
1638 ; Used for compiling the Unix kernel, where strange substitutions are
1639 ; done on the assembly output.
1640 ffunction-cse
1641 Common Var(flag_no_function_cse,0) Optimization
1642 Allow function addresses to be held in registers.
1644 ffunction-sections
1645 Common Var(flag_function_sections)
1646 Place each function into its own section.
1648 fgcse
1649 Common Var(flag_gcse) Optimization
1650 Perform global common subexpression elimination.
1652 fgcse-lm
1653 Common Var(flag_gcse_lm) Init(1) Optimization
1654 Perform enhanced load motion during global common subexpression elimination.
1656 fgcse-sm
1657 Common Var(flag_gcse_sm) Init(0) Optimization
1658 Perform store motion after global common subexpression elimination.
1660 fgcse-las
1661 Common Var(flag_gcse_las) Init(0) Optimization
1662 Perform redundant load after store elimination in global common subexpression
1663 elimination.
1665 fgcse-after-reload
1666 Common Var(flag_gcse_after_reload) Optimization
1667 Perform global common subexpression elimination after register allocation has
1668 finished.
1670 Enum
1671 Name(dwarf_gnat_encodings) Type(int)
1673 EnumValue
1674 Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
1676 EnumValue
1677 Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
1679 EnumValue
1680 Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
1682 fgnat-encodings=
1683 Common Enum(dwarf_gnat_encodings) Joined RejectNegative Undocumented Var(gnat_encodings)
1684 -fgnat-encodings=[all|gdb|minimal]      Select the balance between GNAT encodings and standard DWARF emitted in the debug information.
1686 ; This option is not documented yet as its semantics will change.
1687 fgraphite
1688 Common Var(flag_graphite) Optimization
1689 Enable in and out of Graphite representation.
1691 fgraphite-identity
1692 Common Var(flag_graphite_identity) Optimization
1693 Enable Graphite Identity transformation.
1695 fhoist-adjacent-loads
1696 Common Var(flag_hoist_adjacent_loads) Optimization
1697 Enable hoisting adjacent loads to encourage generating conditional move
1698 instructions.
1700 fkeep-gc-roots-live
1701 Common Undocumented Var(flag_keep_gc_roots_live) Optimization
1702 ; Always keep a pointer to a live memory block
1704 flarge-source-files
1705 Common Var(flag_large_source_files) Init(0)
1706 Improve GCC's ability to track column numbers in large source files,
1707 at the expense of slower compilation.
1709 floop-parallelize-all
1710 Common Var(flag_loop_parallelize_all) Optimization
1711 Mark all loops as parallel.
1713 floop-strip-mine
1714 Common Alias(floop-nest-optimize)
1715 Enable loop nest transforms.  Same as -floop-nest-optimize.
1717 floop-interchange
1718 Common Var(flag_loop_interchange) Optimization
1719 Enable loop interchange on trees.
1721 floop-block
1722 Common Alias(floop-nest-optimize)
1723 Enable loop nest transforms.  Same as -floop-nest-optimize.
1725 floop-unroll-and-jam
1726 Common Var(flag_unroll_jam) Optimization
1727 Perform unroll-and-jam on loops.
1729 fgnu-tm
1730 Common Var(flag_tm)
1731 Enable support for GNU transactional memory.
1733 fgnu-unique
1734 Common Var(flag_gnu_unique) Init(1)
1735 Use STB_GNU_UNIQUE if supported by the assembler.
1737 floop-flatten
1738 Common Ignore
1739 Does nothing. Preserved for backward compatibility.
1741 floop-nest-optimize
1742 Common Var(flag_loop_nest_optimize) Optimization
1743 Enable the loop nest optimizer.
1745 fstrict-volatile-bitfields
1746 Common Var(flag_strict_volatile_bitfields) Init(-1) Optimization
1747 Force bitfield accesses to match their type width.
1749 fstore-merging
1750 Common Var(flag_store_merging) Optimization
1751 Merge adjacent stores.
1753 fguess-branch-probability
1754 Common Var(flag_guess_branch_prob) Optimization
1755 Enable guessing of branch probabilities.
1757 fharden-compares
1758 Common Var(flag_harden_compares) Optimization
1759 Harden conditionals not used in branches, checking reversed conditions.
1761 fharden-conditional-branches
1762 Common Var(flag_harden_conditional_branches) Optimization
1763 Harden conditional branches by checking reversed conditions.
1765 ; Nonzero means ignore `#ident' directives.  0 means handle them.
1766 ; Generate position-independent code for executables if possible
1767 ; On SVR4 targets, it also controls whether or not to emit a
1768 ; string identifying the compiler.
1769 fident
1770 Common Var(flag_no_ident,0)
1771 Process #ident directives.
1773 fif-conversion
1774 Common Var(flag_if_conversion) Optimization
1775 Perform conversion of conditional jumps to branchless equivalents.
1777 fif-conversion2
1778 Common Var(flag_if_conversion2) Optimization
1779 Perform conversion of conditional jumps to conditional execution.
1781 fstack-reuse=
1782 Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
1783 -fstack-reuse=[all|named_vars|none]     Set stack reuse level for local variables.
1785 Enum
1786 Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1788 EnumValue
1789 Enum(stack_reuse_level) String(all) Value(SR_ALL)
1791 EnumValue
1792 Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1794 EnumValue
1795 Enum(stack_reuse_level) String(none) Value(SR_NONE)
1797 ftree-loop-if-convert
1798 Common Var(flag_tree_loop_if_convert) Init(-1) Optimization
1799 Convert conditional jumps in innermost loops to branchless equivalents.
1801 ftree-loop-if-convert-stores
1802 Common Ignore
1803 Does nothing. Preserved for backward compatibility.
1805 ; -finhibit-size-directive inhibits output of .size for ELF.
1806 ; This is used only for compiling crtstuff.c,
1807 ; and it may be extended to other effects
1808 ; needed for crtstuff.c on other systems.
1809 finhibit-size-directive
1810 Common Var(flag_inhibit_size_directive)
1811 Do not generate .size directives.
1813 findirect-inlining
1814 Common Var(flag_indirect_inlining) Optimization
1815 Perform indirect inlining.
1817 ; General flag to enable inlining.  Specifying -fno-inline will disable
1818 ; all inlining apart from always-inline functions.
1819 finline
1820 Common Var(flag_no_inline,0) Init(0) Optimization
1821 Enable inlining of function declared \"inline\", disabling disables all inlining.
1823 finline-small-functions
1824 Common Var(flag_inline_small_functions) Optimization
1825 Integrate functions into their callers when code size is known not to grow.
1827 finline-functions
1828 Common Var(flag_inline_functions) Optimization
1829 Integrate functions not declared \"inline\" into their callers when profitable.
1831 finline-functions-called-once
1832 Common Var(flag_inline_functions_called_once) Optimization
1833 Integrate functions only required by their single caller.
1835 finline-limit-
1836 Common RejectNegative Joined Alias(finline-limit=)
1838 finline-limit=
1839 Common RejectNegative Joined UInteger
1840 -finline-limit=<number> Limit the size of inlined functions to <number>.
1842 finline-atomics
1843 Common Var(flag_inline_atomics) Init(1) Optimization
1844 Inline __atomic operations when a lock free instruction sequence is available.
1846 fcf-protection
1847 Common RejectNegative Alias(fcf-protection=,full)
1849 fcf-protection=
1850 Common Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE)
1851 -fcf-protection=[full|branch|return|none|check] Instrument functions with checks to verify jump/call/return control-flow transfer
1852 instructions have valid targets.
1854 Enum
1855 Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs)
1857 EnumValue
1858 Enum(cf_protection_level) String(full) Value(CF_FULL)
1860 EnumValue
1861 Enum(cf_protection_level) String(branch) Value(CF_BRANCH)
1863 EnumValue
1864 Enum(cf_protection_level) String(return) Value(CF_RETURN)
1866 EnumValue
1867 Enum(cf_protection_level) String(check) Value(CF_CHECK)
1869 EnumValue
1870 Enum(cf_protection_level) String(none) Value(CF_NONE)
1872 finstrument-functions
1873 Common Var(flag_instrument_function_entry_exit)
1874 Instrument function entry and exit with profiling calls.
1876 finstrument-functions-exclude-function-list=
1877 Common RejectNegative Joined
1878 -finstrument-functions-exclude-function-list=name,...   Do not instrument listed functions.
1880 finstrument-functions-exclude-file-list=
1881 Common RejectNegative Joined
1882 -finstrument-functions-exclude-file-list=filename,...   Do not instrument functions listed in files.
1884 fipa-cp
1885 Common Var(flag_ipa_cp) Optimization
1886 Perform interprocedural constant propagation.
1888 fipa-cp-clone
1889 Common Var(flag_ipa_cp_clone) Optimization
1890 Perform cloning to make Interprocedural constant propagation stronger.
1892 fipa-cp-alignment
1893 Common Ignore
1894 Does nothing.  Preserved for backward compatibility.
1896 fipa-bit-cp
1897 Common Var(flag_ipa_bit_cp) Optimization
1898 Perform interprocedural bitwise constant propagation.
1900 fipa-modref
1901 Common Var(flag_ipa_modref) Optimization
1902 Perform interprocedural modref analysis.
1904 fipa-profile
1905 Common Var(flag_ipa_profile) Init(0) Optimization
1906 Perform interprocedural profile propagation.
1908 fipa-pta
1909 Common Var(flag_ipa_pta) Init(0) Optimization
1910 Perform interprocedural points-to analysis.
1912 fipa-pure-const
1913 Common Var(flag_ipa_pure_const) Init(0) Optimization
1914 Discover pure and const functions.
1916 fipa-icf
1917 Common Var(flag_ipa_icf) Optimization
1918 Perform Identical Code Folding for functions and read-only variables.
1920 fipa-icf-functions
1921 Common Var(flag_ipa_icf_functions) Optimization
1922 Perform Identical Code Folding for functions.
1924 fipa-icf-variables
1925 Common Var(flag_ipa_icf_variables) Optimization
1926 Perform Identical Code Folding for variables.
1928 fipa-reference
1929 Common Var(flag_ipa_reference) Init(0) Optimization
1930 Discover read-only and non addressable static variables.
1932 fipa-reference-addressable
1933 Common Var(flag_ipa_reference_addressable) Init(0) Optimization
1934 Discover read-only, write-only and non-addressable static variables.
1936 fipa-stack-alignment
1937 Common Var(flag_ipa_stack_alignment) Init(1) Optimization
1938 Reduce stack alignment on call sites if possible.
1940 fipa-matrix-reorg
1941 Common Ignore
1942 Does nothing. Preserved for backward compatibility.
1944 fipa-struct-reorg
1945 Common Ignore
1946 Does nothing. Preserved for backward compatibility.
1948 fipa-vrp
1949 Common Var(flag_ipa_vrp) Optimization
1950 Perform IPA Value Range Propagation.
1952 fira-algorithm=
1953 Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
1954 -fira-algorithm=[CB|priority]   Set the used IRA algorithm.
1956 fipa-strict-aliasing
1957 Common Var(flag_ipa_strict_aliasing) Init(1) Optimization
1958 Assume strict aliasing rules apply across (uninlined) function boundaries.
1960 Enum
1961 Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1963 EnumValue
1964 Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1966 EnumValue
1967 Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1969 fira-region=
1970 Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_ONE) Optimization
1971 -fira-region=[one|all|mixed]    Set regions for IRA.
1973 Enum
1974 Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1976 EnumValue
1977 Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1979 EnumValue
1980 Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1982 EnumValue
1983 Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1985 fira-hoist-pressure
1986 Common Var(flag_ira_hoist_pressure) Init(1) Optimization
1987 Use IRA based register pressure calculation
1988 in RTL hoist optimizations.
1990 fira-loop-pressure
1991 Common Var(flag_ira_loop_pressure) Optimization
1992 Use IRA based register pressure calculation
1993 in RTL loop optimizations.
1995 fira-share-save-slots
1996 Common Var(flag_ira_share_save_slots) Init(1) Optimization
1997 Share slots for saving different hard registers.
1999 fira-share-spill-slots
2000 Common Var(flag_ira_share_spill_slots) Init(1) Optimization
2001 Share stack slots for spilled pseudo-registers.
2003 fira-verbose=
2004 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
2005 -fira-verbose=<number>  Control IRA's level of diagnostic messages.
2007 fivopts
2008 Common Var(flag_ivopts) Init(1) Optimization
2009 Optimize induction variables on trees.
2011 fjump-tables
2012 Common Var(flag_jump_tables) Init(1) Optimization
2013 Use jump tables for sufficiently large switch statements.
2015 fbit-tests
2016 Common Var(flag_bit_tests) Init(1) Optimization
2017 Use bit tests for sufficiently large switch statements.
2019 fkeep-inline-functions
2020 Common Var(flag_keep_inline_functions)
2021 Generate code for functions even if they are fully inlined.
2023 fkeep-static-functions
2024 Common Var(flag_keep_static_functions)
2025 Generate code for static functions even if they are never called.
2027 fkeep-static-consts
2028 Common Var(flag_keep_static_consts) Init(1)
2029 Emit static const variables even if they are not used.
2031 fleading-underscore
2032 Common Var(flag_leading_underscore) Init(-1)
2033 Give external symbols a leading underscore.
2035 floop-optimize
2036 Common Ignore
2037 Does nothing.  Preserved for backward compatibility.
2039 flra-remat
2040 Common Var(flag_lra_remat) Optimization
2041 Do CFG-sensitive rematerialization in LRA.
2043 flto
2044 Common
2045 Enable link-time optimization.
2047 flto=
2048 Common RejectNegative Joined Var(flag_lto)
2049 Link-time optimization with number of parallel jobs or jobserver.
2051 Enum
2052 Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
2054 EnumValue
2055 Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
2057 EnumValue
2058 Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
2060 EnumValue
2061 Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
2063 EnumValue
2064 Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
2066 EnumValue
2067 Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
2069 flto-partition=
2070 Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
2071 Specify the algorithm to partition symbols and vars at linktime.
2073 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
2074 flto-compression-level=
2075 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 19)
2076 -flto-compression-level=<number>        Use zlib/zstd compression level <number> for IL.
2078 flto-odr-type-merging
2079 Common Ignore
2080 Does nothing.  Preserved for backward compatibility.
2082 flto-report
2083 Common Var(flag_lto_report) Init(0)
2084 Report various link-time optimization statistics.
2086 flto-report-wpa
2087 Common Var(flag_lto_report_wpa) Init(0)
2088 Report various link-time optimization statistics for WPA only.
2090 fmath-errno
2091 Common Var(flag_errno_math) Init(1) Optimization SetByCombined
2092 Set errno after built-in math functions.
2094 fmax-errors=
2095 Common Joined RejectNegative UInteger Var(flag_max_errors)
2096 -fmax-errors=<number>   Maximum number of errors to report.
2098 fmem-report
2099 Common Var(mem_report)
2100 Report on permanent memory allocation.
2102 fmem-report-wpa
2103 Common Var(mem_report_wpa)
2104 Report on permanent memory allocation in WPA only.
2106 ; This will attempt to merge constant section constants, if 1 only
2107 ; string constants and constants from constant pool, if 2 also constant
2108 ; variables.
2109 fmerge-all-constants
2110 Common Var(flag_merge_constants,2) Init(1)
2111 Attempt to merge identical constants and constant variables.
2113 fmerge-constants
2114 Common Var(flag_merge_constants,1)
2115 Attempt to merge identical constants across compilation units.
2117 fmerge-debug-strings
2118 Common Var(flag_merge_debug_strings) Init(1)
2119 Attempt to merge identical debug strings across compilation units.
2121 fmessage-length=
2122 Common RejectNegative Joined UInteger
2123 -fmessage-length=<number>       Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping.
2125 fmodulo-sched
2126 Common Var(flag_modulo_sched) Optimization
2127 Perform SMS based modulo scheduling before the first scheduling pass.
2129 fmodulo-sched-allow-regmoves
2130 Common Var(flag_modulo_sched_allow_regmoves) Optimization
2131 Perform SMS based modulo scheduling with register moves allowed.
2133 fmove-loop-invariants
2134 Common Var(flag_move_loop_invariants) Optimization
2135 Move loop invariant computations out of loops.
2137 fmove-loop-stores
2138 Common Var(flag_move_loop_stores) Optimization
2139 Move stores out of loops.
2141 fdce
2142 Common Var(flag_dce) Init(1) Optimization
2143 Use the RTL dead code elimination pass.
2145 fdse
2146 Common Var(flag_dse) Init(0) Optimization
2147 Use the RTL dead store elimination pass.
2149 freschedule-modulo-scheduled-loops
2150 Common Var(flag_resched_modulo_sched) Optimization
2151 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
2153 fnon-call-exceptions
2154 Common Var(flag_non_call_exceptions) Optimization
2155 Support synchronous non-call exceptions.
2157 foffload=
2158 Driver Joined MissingArgError(targets missing after %qs)
2160 foffload-options=
2161 Common Driver Joined MissingArgError(options or targets=options missing after %qs)
2162 -foffload-options=<targets>=<options>   Specify options for the offloading targets.
2164 foffload-abi=
2165 Common Joined RejectNegative Enum(offload_abi)
2166 -foffload-abi=[lp64|ilp32]      Set the ABI to use in an offload compiler.
2168 Enum
2169 Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
2171 EnumValue
2172 Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
2174 EnumValue
2175 Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
2177 fomit-frame-pointer
2178 Common Var(flag_omit_frame_pointer) Optimization
2179 When possible do not generate stack frames.
2181 fopt-info
2182 Common Var(flag_opt_info) Optimization
2183 Enable all optimization info dumps on stderr.
2185 fopt-info-
2186 Common Joined RejectNegative Var(common_deferred_options) Defer
2187 -fopt-info[-<type>=filename]    Dump compiler optimization details.
2189 fsave-optimization-record
2190 Common Var(flag_save_optimization_record) Optimization
2191 Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
2193 foptimize-register-move
2194 Common Ignore
2195 Does nothing. Preserved for backward compatibility.
2197 foptimize-sibling-calls
2198 Common Var(flag_optimize_sibling_calls) Optimization
2199 Optimize sibling and tail recursive calls.
2201 fpartial-inlining
2202 Common Var(flag_partial_inlining) Optimization
2203 Perform partial inlining.
2205 fpre-ipa-mem-report
2206 Common Var(pre_ipa_mem_report)
2207 Report on memory allocation before interprocedural optimization.
2209 fpost-ipa-mem-report
2210 Common Var(post_ipa_mem_report)
2211 Report on memory allocation before interprocedural optimization.
2213 fpack-struct
2214 Common Var(flag_pack_struct) Optimization
2215 Pack structure members together without holes.
2217 fpack-struct=
2218 Common RejectNegative Joined UInteger Optimization
2219 -fpack-struct=<number>  Set initial maximum structure member alignment.
2221 fpcc-struct-return
2222 Common Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
2223 Return small aggregates in memory, not registers.
2225 fpeel-loops
2226 Common Var(flag_peel_loops) Optimization
2227 Perform loop peeling.
2229 fpeephole
2230 Common Var(flag_no_peephole,0) Optimization
2231 Enable machine specific peephole optimizations.
2233 fpeephole2
2234 Common Var(flag_peephole2) Optimization
2235 Enable an RTL peephole pass before sched2.
2237 fPIC
2238 Common Var(flag_pic,2) Negative(fPIE) Init(-1)
2239 Generate position-independent code if possible (large mode).
2241 fPIE
2242 Common Var(flag_pie,2) Negative(fpic) Init(-1)
2243 Generate position-independent code for executables if possible (large mode).
2245 fpic
2246 Common Var(flag_pic,1) Negative(fpie) Init(-1)
2247 Generate position-independent code if possible (small mode).
2249 fpie
2250 Common Var(flag_pie,1) Negative(fPIC) Init(-1)
2251 Generate position-independent code for executables if possible (small mode).
2253 fplt
2254 Common Var(flag_plt) Init(1) Optimization
2255 Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
2257 fplugin=
2258 Common Joined RejectNegative Var(common_deferred_options) Defer
2259 Specify a plugin to load.
2261 fplugin-arg-
2262 Common Joined RejectNegative Var(common_deferred_options) Defer
2263 -fplugin-arg-<name>-<key>[=<value>]     Specify argument <key>=<value> for plugin <name>.
2265 fpredictive-commoning
2266 Common Var(flag_predictive_commoning) Optimization
2267 Run predictive commoning optimization.
2269 fprefetch-loop-arrays
2270 Common Var(flag_prefetch_loop_arrays) Init(-1) Optimization
2271 Generate prefetch instructions, if available, for arrays in loops.
2273 fprofile
2274 Common Var(profile_flag)
2275 Enable basic program profiling code.
2277 fprofile-abs-path
2278 Common Var(profile_abs_path_flag)
2279 Generate absolute source path names for gcov.
2281 fprofile-arcs
2282 Common Var(profile_arc_flag)
2283 Insert arc-based program profiling code.
2285 fprofile-dir=
2286 Common Joined RejectNegative Var(profile_data_prefix)
2287 Set the top-level directory for storing the profile data.
2288 The default is 'pwd'.
2290 fprofile-note=
2291 Common Joined RejectNegative Var(profile_note_location)
2292 Select the name for storing the profile note file.
2294 fprofile-correction
2295 Common Var(flag_profile_correction)
2296 Enable correction of flow inconsistent profile data input.
2298 fprofile-update=
2299 Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE)
2300 -fprofile-update=[single|atomic|prefer-atomic]  Set the profile update method.
2302 fprofile-filter-files=
2303 Common Joined RejectNegative Var(flag_profile_filter_files)
2304 Instrument only functions from files whose name matches any of the regular expressions (separated by semi-colons).
2306 fprofile-exclude-files=
2307 Common Joined RejectNegative Var(flag_profile_exclude_files)
2308 Instrument only functions from files whose name does not match any of the regular expressions (separated by semi-colons).
2310 Enum
2311 Name(profile_reproducibility) Type(enum profile_reproducibility) UnknownError(unknown profile reproducibility method %qs)
2313 EnumValue
2314 Enum(profile_reproducibility) String(serial) Value(PROFILE_REPRODUCIBILITY_SERIAL)
2316 EnumValue
2317 Enum(profile_reproducibility) String(parallel-runs) Value(PROFILE_REPRODUCIBILITY_PARALLEL_RUNS)
2319 EnumValue
2320 Enum(profile_reproducibility) String(multithreaded) Value(PROFILE_REPRODUCIBILITY_MULTITHREADED)
2322 fprofile-reproducible=
2323 Common Joined RejectNegative Var(flag_profile_reproducible) Enum(profile_reproducibility) Init(PROFILE_REPRODUCIBILITY_SERIAL)
2324 -fprofile-reproducible=[serial|parallel-runs|multithreaded]     Control level of reproducibility of profile gathered by -fprofile-generate.
2326 Enum
2327 Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs)
2329 EnumValue
2330 Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE)
2332 EnumValue
2333 Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC)
2335 EnumValue
2336 Enum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC)
2338 fprofile-prefix-path=
2339 Common Joined RejectNegative Var(profile_prefix_path)
2340 Remove prefix from absolute path before mangling name for -fprofile-generate= and -fprofile-use=.
2342 fprofile-prefix-map=
2343 Common Joined RejectNegative Var(common_deferred_options) Defer
2344 -fprofile-prefix-map=<old>=<new>        Map one directory name to another in GCOV coverage result.
2346 fprofile-generate
2347 Common
2348 Enable common options for generating profile info for profile feedback directed optimizations.
2350 fprofile-generate=
2351 Common Joined RejectNegative
2352 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
2354 fprofile-info-section
2355 Common RejectNegative
2356 Register the profile information in the .gcov_info section instead of using a constructor/destructor.
2358 fprofile-info-section=
2359 Common Joined RejectNegative Var(profile_info_section)
2360 Register the profile information in the specified section instead of using a constructor/destructor.
2362 fprofile-partial-training
2363 Common Var(flag_profile_partial_training) Optimization
2364 Do not assume that functions never executed during the train run are cold.
2366 fprofile-use
2367 Common Var(flag_profile_use)
2368 Enable common options for performing profile feedback directed optimizations.
2370 fprofile-use=
2371 Common Joined RejectNegative
2372 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
2374 fprofile-values
2375 Common Var(flag_profile_values)
2376 Insert code to profile values of expressions.
2378 fprofile-report
2379 Common Var(profile_report)
2380 Report on consistency of profile.
2382 fprofile-reorder-functions
2383 Common Var(flag_profile_reorder_functions) Optimization
2384 Enable function reordering that improves code placement.
2386 fpatchable-function-entry=
2387 Common Var(flag_patchable_function_entry) Joined Optimization
2388 Insert NOP instructions at each function entry.
2390 frandom-seed
2391 Common Var(common_deferred_options) Defer
2393 frandom-seed=
2394 Common Joined RejectNegative Var(common_deferred_options) Defer
2395 -frandom-seed=<string>  Make compile reproducible using <string>.
2397 ; This switch causes the command line that was used to create an
2398 ; object file to be recorded into the object file.  The exact format
2399 ; of this recording is target and binary file format dependent.
2400 ; It is related to the -fverbose-asm switch, but that switch only
2401 ; records information in the assembler output file as comments, so
2402 ; they never reach the object file.
2403 frecord-gcc-switches
2404 Common Var(flag_record_gcc_switches)
2405 Record gcc command line switches in the object file.
2407 freg-struct-return
2408 Common Var(flag_pcc_struct_return,0) Optimization
2409 Return small aggregates in registers.
2411 fregmove
2412 Common Ignore
2413 Does nothing. Preserved for backward compatibility.
2415 flifetime-dse
2416 Common Var(flag_lifetime_dse,2) Init(2) Optimization
2417 Tell DSE that the storage for a C++ object is dead when the constructor
2418 starts and when the destructor finishes.
2420 flifetime-dse=
2421 Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
2423 flive-patching
2424 Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
2426 flive-patching=
2427 Common Joined RejectNegative Enum(live_patching_level) Var(flag_live_patching) Init(LIVE_PATCHING_NONE) Optimization
2428 -flive-patching=[inline-only-static|inline-clone]       Control IPA
2429 optimizations to provide a safe compilation for live-patching.  At the same
2430 time, provides multiple-level control on the enabled IPA optimizations.
2432 Enum
2433 Name(live_patching_level) Type(enum live_patching_level) UnknownError(unknown Live-Patching Level %qs)
2435 EnumValue
2436 Enum(live_patching_level) String(inline-only-static) Value(LIVE_PATCHING_INLINE_ONLY_STATIC)
2438 EnumValue
2439 Enum(live_patching_level) String(inline-clone) Value(LIVE_PATCHING_INLINE_CLONE)
2441 fallocation-dce
2442 Common Var(flag_allocation_dce) Init(1) Optimization
2443 Tell DCE to remove unused C++ allocations.
2445 flive-range-shrinkage
2446 Common Var(flag_live_range_shrinkage) Init(0) Optimization
2447 Relief of register pressure through live range shrinkage.
2449 frename-registers
2450 Common Var(flag_rename_registers) Optimization EnabledBy(funroll-loops)
2451 Perform a register renaming optimization pass.
2453 fschedule-fusion
2454 Common Var(flag_schedule_fusion) Init(2) Optimization
2455 Perform a target dependent instruction fusion optimization pass.
2457 freorder-blocks
2458 Common Var(flag_reorder_blocks) Optimization
2459 Reorder basic blocks to improve code placement.
2461 freorder-blocks-algorithm=
2462 Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
2463 -freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
2465 Enum
2466 Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
2468 EnumValue
2469 Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
2471 EnumValue
2472 Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
2474 freorder-blocks-and-partition
2475 Common Var(flag_reorder_blocks_and_partition) Optimization
2476 Reorder basic blocks and partition into hot and cold sections.
2478 freorder-functions
2479 Common Var(flag_reorder_functions) Optimization
2480 Reorder functions to improve code placement.
2482 frerun-cse-after-loop
2483 Common Var(flag_rerun_cse_after_loop) Optimization
2484 Add a common subexpression elimination pass after loop optimizations.
2486 frerun-loop-opt
2487 Common Ignore
2488 Does nothing.  Preserved for backward compatibility.
2490 frounding-math
2491 Common Var(flag_rounding_math) Optimization SetByCombined
2492 Disable optimizations that assume default FP rounding behavior.
2494 fsched-interblock
2495 Common Var(flag_schedule_interblock) Init(1) Optimization
2496 Enable scheduling across basic blocks.
2498 fsched-pressure
2499 Common Var(flag_sched_pressure) Init(0) Optimization
2500 Enable register pressure sensitive insn scheduling.
2502 fsched-spec
2503 Common Var(flag_schedule_speculative) Init(1) Optimization
2504 Allow speculative motion of non-loads.
2506 fsched-spec-load
2507 Common Var(flag_schedule_speculative_load) Optimization
2508 Allow speculative motion of some loads.
2510 fsched-spec-load-dangerous
2511 Common Var(flag_schedule_speculative_load_dangerous) Optimization
2512 Allow speculative motion of more loads.
2514 fsched-verbose=
2515 Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
2516 -fsched-verbose=<number>        Set the verbosity level of the scheduler.
2518 fsched2-use-superblocks
2519 Common Var(flag_sched2_use_superblocks) Optimization
2520 If scheduling post reload, do superblock scheduling.
2522 fsched2-use-traces
2523 Common Ignore
2524 Does nothing.  Preserved for backward compatibility.
2526 fschedule-insns
2527 Common Var(flag_schedule_insns) Optimization
2528 Reschedule instructions before register allocation.
2530 fschedule-insns2
2531 Common Var(flag_schedule_insns_after_reload) Optimization
2532 Reschedule instructions after register allocation.
2534 ; This flag should be on when a target implements non-trivial
2535 ; scheduling hooks, maybe saving some information for its own sake.
2536 ; On IA64, for example, this is used for correct bundling.
2537 fselective-scheduling
2538 Common Var(flag_selective_scheduling) Optimization
2539 Schedule instructions using selective scheduling algorithm.
2541 fselective-scheduling2
2542 Common Var(flag_selective_scheduling2) Optimization
2543 Run selective scheduling after reload.
2545 fself-test=
2546 Common Undocumented Joined Var(flag_self_test)
2547 Run self-tests, using the given path to locate test files.
2549 fsel-sched-pipelining
2550 Common Var(flag_sel_sched_pipelining) Init(0) Optimization
2551 Perform software pipelining of inner loops during selective scheduling.
2553 fsel-sched-pipelining-outer-loops
2554 Common Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
2555 Perform software pipelining of outer loops during selective scheduling.
2557 fsel-sched-reschedule-pipelined
2558 Common Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
2559 Reschedule pipelined regions without pipelining.
2561 fsemantic-interposition
2562 Common Var(flag_semantic_interposition) Init(1) Optimization
2563 Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
2565 ; sched_stalled_insns means that insns can be moved prematurely from the queue
2566 ; of stalled insns into the ready list.
2567 fsched-stalled-insns
2568 Common Var(flag_sched_stalled_insns) Optimization UInteger
2569 Allow premature scheduling of queued insns.
2571 fsched-stalled-insns=
2572 Common RejectNegative Joined UInteger Optimization
2573 -fsched-stalled-insns=<number>  Set number of queued insns that can be prematurely scheduled.
2575 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
2576 ; be examined for a dependency on a stalled insn that is candidate for
2577 ; premature removal from the queue of stalled insns into the ready list (has
2578 ; an effect only if the flag 'sched_stalled_insns' is set).
2579 fsched-stalled-insns-dep
2580 Common Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
2581 Set dependence distance checking in premature scheduling of queued insns.
2583 fsched-stalled-insns-dep=
2584 Common RejectNegative Joined UInteger Optimization
2585 -fsched-stalled-insns-dep=<number>      Set dependence distance checking in premature scheduling of queued insns.
2587 fsched-group-heuristic
2588 Common Var(flag_sched_group_heuristic) Init(1) Optimization
2589 Enable the group heuristic in the scheduler.
2591 fsched-critical-path-heuristic
2592 Common Var(flag_sched_critical_path_heuristic) Init(1) Optimization
2593 Enable the critical path heuristic in the scheduler.
2595 fsched-spec-insn-heuristic
2596 Common Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
2597 Enable the speculative instruction heuristic in the scheduler.
2599 fsched-rank-heuristic
2600 Common Var(flag_sched_rank_heuristic) Init(1) Optimization
2601 Enable the rank heuristic in the scheduler.
2603 fsched-last-insn-heuristic
2604 Common Var(flag_sched_last_insn_heuristic) Init(1) Optimization
2605 Enable the last instruction heuristic in the scheduler.
2607 fsched-dep-count-heuristic
2608 Common Var(flag_sched_dep_count_heuristic) Init(1) Optimization
2609 Enable the dependent count heuristic in the scheduler.
2611 fsection-anchors
2612 Common Var(flag_section_anchors) Optimization
2613 Access data in the same section from shared anchor points.
2615 fsee
2616 Common Ignore
2617 Does nothing.  Preserved for backward compatibility.
2619 fzee
2620 Common Ignore
2621 Does nothing.  Preserved for backward compatibility.
2623 free
2624 Common Var(flag_ree) Init(0) Optimization
2625 Turn on Redundant Extensions Elimination pass.
2627 fshow-column
2628 Common Var(flag_show_column) Init(1)
2629 Show column numbers in diagnostics, when available.  Default on.
2631 fshrink-wrap
2632 Common Var(flag_shrink_wrap) Optimization
2633 Emit function prologues only before parts of the function that need it,
2634 rather than at the top of the function.
2636 fshrink-wrap-separate
2637 Common Var(flag_shrink_wrap_separate) Init(1) Optimization
2638 Shrink-wrap parts of the prologue and epilogue separately.
2640 fsignaling-nans
2641 Common Var(flag_signaling_nans) Optimization SetByCombined
2642 Disable optimizations observable by IEEE signaling NaNs.
2644 fsigned-zeros
2645 Common Var(flag_signed_zeros) Init(1) Optimization SetByCombined
2646 Disable floating point optimizations that ignore the IEEE signedness of zero.
2648 fsingle-precision-constant
2649 Common Var(flag_single_precision_constant) Optimization
2650 Convert floating point constants to single precision constants.
2652 fsplit-ivs-in-unroller
2653 Common Var(flag_split_ivs_in_unroller) Init(1) Optimization
2654 Split lifetimes of induction variables when loops are unrolled.
2656 fsplit-stack
2657 Common Var(flag_split_stack) Init(-1)
2658 Generate discontiguous stack frames.
2660 fsplit-wide-types
2661 Common Var(flag_split_wide_types) Optimization
2662 Split wide types into independent registers.
2664 fsplit-wide-types-early
2665 Common Var(flag_split_wide_types_early) Optimization
2666 Split wide types into independent registers earlier.
2668 fssa-backprop
2669 Common Var(flag_ssa_backprop) Init(1) Optimization
2670 Enable backward propagation of use properties at the SSA level.
2672 fssa-phiopt
2673 Common Var(flag_ssa_phiopt) Optimization
2674 Optimize conditional patterns using SSA PHI nodes.
2676 fstdarg-opt
2677 Common Var(flag_stdarg_opt) Init(1) Optimization
2678 Optimize amount of stdarg registers saved to stack at start of function.
2680 fvariable-expansion-in-unroller
2681 Common Var(flag_variable_expansion_in_unroller) Optimization
2682 Apply variable expansion when loops are unrolled.
2684 fstack-check=
2685 Common RejectNegative Joined Optimization
2686 -fstack-check=[no|generic|specific]     Insert stack checking code into the program.
2688 fstack-check
2689 Common Alias(fstack-check=, specific, no)
2690 Insert stack checking code into the program.  Same as -fstack-check=specific.
2692 fstack-clash-protection
2693 Common Var(flag_stack_clash_protection) Optimization
2694 Insert code to probe each page of stack space as it is allocated to protect
2695 from stack-clash style attacks.
2697 fstack-limit
2698 Common Var(common_deferred_options) Defer
2700 fstack-limit-register=
2701 Common RejectNegative Joined Var(common_deferred_options) Defer
2702 -fstack-limit-register=<register>       Trap if the stack goes past <register>.
2704 fstack-limit-symbol=
2705 Common RejectNegative Joined Var(common_deferred_options) Defer
2706 -fstack-limit-symbol=<name>     Trap if the stack goes past symbol <name>.
2708 fstack-protector
2709 Common Var(flag_stack_protect, 1) Init(-1) Optimization
2710 Use propolice as a stack protection method.
2712 fstack-protector-all
2713 Common RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
2714 Use a stack protection method for every function.
2716 fstack-protector-strong
2717 Common RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
2718 Use a smart stack protection method for certain functions.
2720 fstack-protector-explicit
2721 Common RejectNegative Var(flag_stack_protect, 4) Optimization
2722 Use stack protection method only for functions with the stack_protect attribute.
2724 fstack-usage
2725 Common RejectNegative Var(flag_stack_usage)
2726 Output stack usage information on a per-function basis.
2728 fstrength-reduce
2729 Common Ignore
2730 Does nothing.  Preserved for backward compatibility.
2732 ; Nonzero if we should do (language-dependent) alias analysis.
2733 ; Typically, this analysis will assume that expressions of certain
2734 ; types do not alias expressions of certain other types.  Only used
2735 ; if alias analysis (in general) is enabled.
2736 fstrict-aliasing
2737 Common Var(flag_strict_aliasing) Optimization
2738 Assume strict aliasing rules apply.
2740 fstrict-overflow
2741 Common
2742 Treat signed overflow as undefined.  Negated as -fwrapv -fwrapv-pointer.
2744 fsync-libcalls
2745 Common Var(flag_sync_libcalls) Init(1)
2746 Implement __atomic operations via libcalls to legacy __sync functions.
2748 fsyntax-only
2749 Common Var(flag_syntax_only)
2750 Check for syntax errors, then stop.
2752 ftest-coverage
2753 Common Var(flag_test_coverage)
2754 Create data files needed by \"gcov\".
2756 fthread-jumps
2757 Common Var(flag_thread_jumps) Optimization
2758 Perform jump threading optimizations.
2760 ftime-report
2761 Common Var(time_report)
2762 Report the time taken by each compiler pass.
2764 ftime-report-details
2765 Common Var(time_report_details)
2766 Record times taken by sub-phases separately.
2768 ftls-model=
2769 Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
2770 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model.
2772 Enum
2773 Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
2775 EnumValue
2776 Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
2778 EnumValue
2779 Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
2781 EnumValue
2782 Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
2784 EnumValue
2785 Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
2787 ftoplevel-reorder
2788 Common Var(flag_toplevel_reorder) Init(2) Optimization
2789 Reorder top level functions, variables, and asms.
2791 ftracer
2792 Common Var(flag_tracer) Optimization
2793 Perform superblock formation via tail duplication.
2795 ftrampolines
2796 Common Var(flag_trampolines) Init(0)
2797 For targets that normally need trampolines for nested functions, always
2798 generate them instead of using descriptors.
2800 ; Zero means that floating-point math operations cannot generate a
2801 ; (user-visible) trap.  This is the case, for example, in nonstop
2802 ; IEEE 754 arithmetic.
2803 ftrapping-math
2804 Common Var(flag_trapping_math) Init(1) Optimization SetByCombined
2805 Assume floating-point operations can trap.
2807 ftrapv
2808 Common Var(flag_trapv) Optimization
2809 Trap for signed overflow in addition, subtraction and multiplication.
2811 ftree-ccp
2812 Common Var(flag_tree_ccp) Optimization
2813 Enable SSA-CCP optimization on trees.
2815 ftree-bit-ccp
2816 Common Var(flag_tree_bit_ccp) Optimization
2817 Enable SSA-BIT-CCP optimization on trees.
2819 ftree-store-ccp
2820 Common Ignore
2821 Does nothing.  Preserved for backward compatibility.
2823 ftree-ch
2824 Common Var(flag_tree_ch) Optimization
2825 Enable loop header copying on trees.
2827 ftree-coalesce-inlined-vars
2828 Common Ignore RejectNegative
2829 Does nothing.  Preserved for backward compatibility.
2831 ftree-coalesce-vars
2832 Common Var(flag_tree_coalesce_vars) Optimization
2833 Enable SSA coalescing of user variables.
2835 ftree-copyrename
2836 Common Ignore
2837 Does nothing.  Preserved for backward compatibility.
2839 ftree-copy-prop
2840 Common Var(flag_tree_copy_prop) Optimization
2841 Enable copy propagation on trees.
2843 ftree-store-copy-prop
2844 Common Ignore
2845 Does nothing.  Preserved for backward compatibility.
2847 ftree-cselim
2848 Common Var(flag_tree_cselim) Optimization
2849 Transform condition stores into unconditional ones.
2851 ftree-switch-conversion
2852 Common Var(flag_tree_switch_conversion) Optimization
2853 Perform conversions of switch initializations.
2855 ftree-dce
2856 Common Var(flag_tree_dce) Optimization
2857 Enable SSA dead code elimination optimization on trees.
2859 ftree-dominator-opts
2860 Common Var(flag_tree_dom) Optimization
2861 Enable dominator optimizations.
2863 ftree-tail-merge
2864 Common Var(flag_tree_tail_merge) Optimization
2865 Enable tail merging on trees.
2867 ftree-dse
2868 Common Var(flag_tree_dse) Optimization
2869 Enable dead store elimination.
2871 ftree-forwprop
2872 Common Var(flag_tree_forwprop) Init(1) Optimization
2873 Enable forward propagation on trees.
2875 ftree-fre
2876 Common Var(flag_tree_fre) Optimization
2877 Enable Full Redundancy Elimination (FRE) on trees.
2879 foptimize-strlen
2880 Common Var(flag_optimize_strlen) Optimization
2881 Enable string length optimizations on trees.
2883 fisolate-erroneous-paths-dereference
2884 Common Var(flag_isolate_erroneous_paths_dereference) Optimization
2885 Detect paths that trigger erroneous or undefined behavior due to
2886 dereferencing a null pointer.  Isolate those paths from the main control
2887 flow and turn the statement with erroneous or undefined behavior into a trap.
2889 fisolate-erroneous-paths-attribute
2890 Common Var(flag_isolate_erroneous_paths_attribute) Optimization
2891 Detect paths that trigger erroneous or undefined behavior due to a null value
2892 being used in a way forbidden by a returns_nonnull or nonnull
2893 attribute.  Isolate those paths from the main control flow and turn the
2894 statement with erroneous or undefined behavior into a trap.
2896 ftree-loop-distribution
2897 Common Var(flag_tree_loop_distribution) Optimization
2898 Enable loop distribution on trees.
2900 ftree-loop-distribute-patterns
2901 Common Var(flag_tree_loop_distribute_patterns) Optimization
2902 Enable loop distribution for patterns transformed into a library call.
2904 ftree-loop-im
2905 Common Var(flag_tree_loop_im) Init(1) Optimization
2906 Enable loop invariant motion on trees.
2908 ftree-loop-linear
2909 Common Alias(floop-nest-optimize)
2910 Enable loop nest transforms.  Same as -floop-nest-optimize.
2912 ftree-loop-ivcanon
2913 Common Var(flag_tree_loop_ivcanon) Init(1) Optimization
2914 Create canonical induction variables in loops.
2916 ftree-loop-optimize
2917 Common Var(flag_tree_loop_optimize) Init(1) Optimization
2918 Enable loop optimizations on tree level.
2920 ftree-parallelize-loops=
2921 Common Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
2922 -ftree-parallelize-loops=<number>       Enable automatic parallelization of loops.
2924 ftree-phiprop
2925 Common Var(flag_tree_phiprop) Init(1) Optimization
2926 Enable hoisting loads from conditional pointers.
2928 ftree-pre
2929 Common Var(flag_tree_pre) Optimization
2930 Enable SSA-PRE optimization on trees.
2932 ftree-partial-pre
2933 Common Var(flag_tree_partial_pre) Optimization
2934 In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
2936 ftree-pta
2937 Common Var(flag_tree_pta) Optimization
2938 Perform function-local points-to analysis on trees.
2940 ftree-reassoc
2941 Common Var(flag_tree_reassoc) Init(1) Optimization
2942 Enable reassociation on tree level.
2944 ftree-salias
2945 Common Ignore
2946 Does nothing.  Preserved for backward compatibility.
2948 ftree-sink
2949 Common Var(flag_tree_sink) Optimization
2950 Enable SSA code sinking on trees.
2952 ftree-slsr
2953 Common Var(flag_tree_slsr) Optimization
2954 Perform straight-line strength reduction.
2956 ftree-sra
2957 Common Var(flag_tree_sra) Optimization
2958 Perform scalar replacement of aggregates.
2960 ftree-ter
2961 Common Var(flag_tree_ter) Optimization
2962 Replace temporary expressions in the SSA->normal pass.
2964 ftree-lrs
2965 Common Var(flag_tree_live_range_split) Optimization
2966 Perform live range splitting during the SSA->normal pass.
2968 ftree-vrp
2969 Common Var(flag_tree_vrp) Init(0) Optimization
2970 Perform Value Range Propagation on trees.
2972 fsplit-paths
2973 Common Var(flag_split_paths) Init(0) Optimization
2974 Split paths leading to loop backedges.
2976 funconstrained-commons
2977 Common Var(flag_unconstrained_commons) Optimization
2978 Assume common declarations may be overridden with ones with a larger
2979 trailing array.
2981 funit-at-a-time
2982 Common Var(flag_unit_at_a_time) Init(1)
2983 Compile whole compilation unit at a time.
2985 funroll-loops
2986 Common Var(flag_unroll_loops) Optimization EnabledBy(funroll-all-loops)
2987 Perform loop unrolling when iteration count is known.
2989 funroll-all-loops
2990 Common Var(flag_unroll_all_loops) Optimization
2991 Perform loop unrolling for all loops.
2993 funroll-completely-grow-size
2994 Undocumented Var(flag_cunroll_grow_size) Optimization
2995 ; Internal undocumented flag, allow size growth during complete unrolling
2997 ; Nonzero means that loop optimizer may assume that the induction variables
2998 ; that control loops do not overflow and that the loops with nontrivial
2999 ; exit condition are not infinite
3000 funsafe-loop-optimizations
3001 Common Ignore
3002 Does nothing.  Preserved for backward compatibility.
3004 fassociative-math
3005 Common Var(flag_associative_math) SetByCombined Optimization
3006 Allow optimization for floating-point arithmetic which may change the
3007 result of the operation due to rounding.
3009 freciprocal-math
3010 Common Var(flag_reciprocal_math) SetByCombined Optimization
3011 Same as -fassociative-math for expressions which include division.
3013 ; Nonzero means that unsafe floating-point math optimizations are allowed
3014 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
3015 ; are allowed to assume that their arguments and results are "normal"
3016 ; (e.g., nonnegative for SQRT).
3017 funsafe-math-optimizations
3018 Common Var(flag_unsafe_math_optimizations) Optimization SetByCombined
3019 Allow math optimizations that may violate IEEE or ISO standards.
3021 funswitch-loops
3022 Common Var(flag_unswitch_loops) Optimization
3023 Perform loop unswitching.
3025 fsplit-loops
3026 Common Var(flag_split_loops) Optimization
3027 Perform loop splitting.
3029 fversion-loops-for-strides
3030 Common Var(flag_version_loops_for_strides) Optimization
3031 Version loops based on whether indices have a stride of one.
3033 funwind-tables
3034 Common Var(flag_unwind_tables) Optimization
3035 Just generate unwind tables for exception handling.
3037 fuse-ld=bfd
3038 Common Driver Negative(fuse-ld=gold)
3039 Use the bfd linker instead of the default linker.
3041 fuse-ld=gold
3042 Common Driver Negative(fuse-ld=bfd)
3043 Use the gold linker instead of the default linker.
3045 fuse-ld=lld
3046 Common Driver Negative(fuse-ld=lld)
3047 Use the lld LLVM linker instead of the default linker.
3049 fuse-ld=mold
3050 Common Driver Negative(fuse-ld=mold)
3051 Use the Modern linker (MOLD) linker instead of the default linker.
3053 fuse-linker-plugin
3054 Common Undocumented Var(flag_use_linker_plugin)
3056 ; Positive if we should track variables, negative if we should run
3057 ; the var-tracking pass only to discard debug annotations, zero if
3058 ; we're not to run it.
3059 fvar-tracking
3060 Common Var(flag_var_tracking) PerFunction EnabledBy(fvar-tracking-uninit)
3061 Perform variable tracking.
3063 ; Positive if we should track variables at assignments, negative if
3064 ; we should run the var-tracking pass only to discard debug
3065 ; annotations.
3066 fvar-tracking-assignments
3067 Common Var(flag_var_tracking_assignments) PerFunction
3068 Perform variable tracking by annotating assignments.
3070 ; Nonzero if we should toggle flag_var_tracking_assignments after
3071 ; processing options and computing its default.  */
3072 fvar-tracking-assignments-toggle
3073 Common Var(flag_var_tracking_assignments_toggle) PerFunction
3074 Toggle -fvar-tracking-assignments.
3076 ; Positive if we should track uninitialized variables, negative if
3077 ; we should run the var-tracking pass only to discard debug
3078 ; annotations.
3079 fvar-tracking-uninit
3080 Common Var(flag_var_tracking_uninit) PerFunction
3081 Perform variable tracking and also tag variables that are uninitialized.
3083 ; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
3084 ftree-vectorize
3085 Common Var(flag_tree_vectorize) Optimization
3086 Enable vectorization on trees.
3088 ftree-vectorizer-verbose=
3089 Common Joined RejectNegative Ignore
3090 Does nothing.  Preserved for backward compatibility.
3092 ftree-loop-vectorize
3093 Common Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
3094 Enable loop vectorization on trees.
3096 ftree-slp-vectorize
3097 Common Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
3098 Enable basic block vectorization (SLP) on trees.
3100 fvect-cost-model=
3101 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
3102 -fvect-cost-model=[unlimited|dynamic|cheap|very-cheap]  Specifies the cost model for vectorization.
3104 fsimd-cost-model=
3105 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
3106 -fsimd-cost-model=[unlimited|dynamic|cheap|very-cheap]  Specifies the vectorization cost model for code marked with a simd directive.
3108 Enum
3109 Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
3111 EnumValue
3112 Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
3114 EnumValue
3115 Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
3117 EnumValue
3118 Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
3120 EnumValue
3121 Enum(vect_cost_model) String(very-cheap) Value(VECT_COST_MODEL_VERY_CHEAP)
3123 fvect-cost-model
3124 Common Alias(fvect-cost-model=,dynamic,unlimited)
3125 Enables the dynamic vectorizer cost model.  Preserved for backward compatibility.
3127 ftree-vect-loop-version
3128 Common Ignore
3129 Does nothing. Preserved for backward compatibility.
3131 ftree-scev-cprop
3132 Common Var(flag_tree_scev_cprop) Init(1) Optimization
3133 Enable copy propagation of scalar-evolution information.
3135 ftrivial-auto-var-init=
3136 Common Joined RejectNegative Enum(auto_init_type) Var(flag_auto_var_init) Init(AUTO_INIT_UNINITIALIZED) Optimization
3137 -ftrivial-auto-var-init=[uninitialized|pattern|zero]    Add initializations to automatic variables.
3139 Enum
3140 Name(auto_init_type) Type(enum auto_init_type) UnknownError(unrecognized automatic variable initialization type %qs)
3142 EnumValue
3143 Enum(auto_init_type) String(uninitialized) Value(AUTO_INIT_UNINITIALIZED)
3145 EnumValue
3146 Enum(auto_init_type) String(pattern) Value(AUTO_INIT_PATTERN)
3148 EnumValue
3149 Enum(auto_init_type) String(zero) Value(AUTO_INIT_ZERO)
3151 ; -fverbose-asm causes extra commentary information to be produced in
3152 ; the generated assembly code (to make it more readable).  This option
3153 ; is generally only of use to those who actually need to read the
3154 ; generated assembly code (perhaps while debugging the compiler itself).
3155 ; -fno-verbose-asm, the default, causes the extra information
3156 ; to not be added and is useful when comparing two assembler files.
3157 fverbose-asm
3158 Common Var(flag_verbose_asm)
3159 Add extra commentary to assembler output.
3161 fvisibility=
3162 Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
3163 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility.
3165 Enum
3166 Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
3168 EnumValue
3169 Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
3171 EnumValue
3172 Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
3174 EnumValue
3175 Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
3177 EnumValue
3178 Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
3180 fvtable-verify=
3181 Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
3182 Validate vtable pointers before using them.
3184 Enum
3185 Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
3187 EnumValue
3188 Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
3190 EnumValue
3191 Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
3193 EnumValue
3194 Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
3196 fvtv-counts
3197 Common Var(flag_vtv_counts)
3198 Output vtable verification counters.
3200 fvtv-debug
3201 Common Var(flag_vtv_debug)
3202 Output vtable verification pointer sets information.
3204 fvpt
3205 Common Var(flag_value_profile_transformations) Optimization
3206 Use expression value profiles in optimizations.
3208 fweb
3209 Common Var(flag_web) Optimization EnabledBy(funroll-loops)
3210 Construct webs and split unrelated uses of single variable.
3212 ftree-builtin-call-dce
3213 Common Var(flag_tree_builtin_call_dce) Init(0) Optimization
3214 Enable conditional dead code elimination for builtin calls.
3216 fwhole-program
3217 Common Var(flag_whole_program) Init(0)
3218 Perform whole program optimizations.
3220 fwrapv-pointer
3221 Common Var(flag_wrapv_pointer) Optimization
3222 Assume pointer overflow wraps around.
3224 fwrapv
3225 Common Var(flag_wrapv) Optimization
3226 Assume signed arithmetic overflow wraps around.
3228 fzero-initialized-in-bss
3229 Common Var(flag_zero_initialized_in_bss) Init(1)
3230 Put zero initialized data in the bss section.
3232 fzero-call-used-regs=
3233 Common RejectNegative Joined
3234 Clear call-used registers upon function return.
3237 Common Driver RejectNegative JoinedOrMissing
3238 Generate debug information in default format.
3240 gas-loc-support
3241 Common Driver Var(dwarf2out_as_loc_support)
3242 Assume assembler support for (DWARF2+) .loc directives.
3244 gas-locview-support
3245 Common Driver Var(dwarf2out_as_locview_support)
3246 Assume assembler support for view in (DWARF2+) .loc directives.
3248 gcoff
3249 Common Driver WarnRemoved
3250 Does nothing.  Preserved for backward compatibility.
3252 gcoff1
3253 Common Driver WarnRemoved
3254 Does nothing.  Preserved for backward compatibility.
3256 gcoff2
3257 Common Driver WarnRemoved
3258 Does nothing.  Preserved for backward compatibility.
3260 gcoff3
3261 Common Driver WarnRemoved
3262 Does nothing.  Preserved for backward compatibility.
3264 gcolumn-info
3265 Common Driver Var(debug_column_info,1) Init(1)
3266 Record DW_AT_decl_column and DW_AT_call_column in DWARF.
3268 ; The CTF generation process feeds off DWARF dies.  This option implicitly
3269 ; updates the debug_info_level to DINFO_LEVEL_NORMAL.
3270 gctf
3271 Common Driver RejectNegative JoinedOrMissing
3272 Generate CTF debug information at default level.
3274 gbtf
3275 Common Driver RejectNegative JoinedOrMissing
3276 Generate BTF debug information at default level.
3278 gdwarf
3279 Common Driver JoinedOrMissing Negative(gdwarf-)
3280 Generate debug information in default version of DWARF format.
3282 gdwarf-
3283 Common Driver Joined UInteger Var(dwarf_version) Init(5) Negative(gstabs)
3284 Generate debug information in DWARF v2 (or later) format.
3286 gdwarf32
3287 Common Driver Var(dwarf_offset_size,4) Init(4) RejectNegative
3288 Use 32-bit DWARF format when emitting DWARF debug information.
3290 gdwarf64
3291 Common Driver Var(dwarf_offset_size,8) RejectNegative
3292 Use 64-bit DWARF format when emitting DWARF debug information.
3294 ggdb
3295 Common Driver JoinedOrMissing
3296 Generate debug information in default extended format.
3298 ginline-points
3299 Common Driver Var(debug_inline_points)
3300 Generate extended entry point information for inlined functions.
3302 ginternal-reset-location-views
3303 Common Driver Var(debug_internal_reset_location_views) Init(2)
3304 Compute locview reset points based on insn length estimates.
3306 gno-
3307 RejectNegative Joined Undocumented
3308 ; Catch the gno- prefix, so it doesn't backtrack to g<level>.
3310 gno-pubnames
3311 Common Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
3312 Don't generate DWARF pubnames and pubtypes sections.
3314 gpubnames
3315 Common Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
3316 Generate DWARF pubnames and pubtypes sections.
3318 ggnu-pubnames
3319 Common Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
3320 Generate DWARF pubnames and pubtypes sections with GNU extensions.
3322 grecord-gcc-switches
3323 Common Driver Var(dwarf_record_gcc_switches) Init(1)
3324 Record gcc command line switches in DWARF DW_AT_producer.
3326 gsplit-dwarf
3327 Common Driver Var(dwarf_split_debug_info) Init(0)
3328 Generate debug information in separate .dwo files.
3330 gstabs
3331 Common Driver JoinedOrMissing Negative(gstabs+)
3332 Generate debug information in STABS format.
3334 gstabs+
3335 Common Driver JoinedOrMissing Negative(gvms)
3336 Generate debug information in extended STABS format.
3338 gstatement-frontiers
3339 Common Driver Var(debug_nonbind_markers_p) PerFunction
3340 Emit progressive recommended breakpoint locations.
3342 gstrict-dwarf
3343 Common Driver Var(dwarf_strict) Init(0)
3344 Don't emit DWARF additions beyond selected version.
3346 gdescribe-dies
3347 Common Driver Var(flag_describe_dies) Init(0)
3348 Add description attributes to some DWARF DIEs that have no name attribute.
3350 gtoggle
3351 Common Driver Var(flag_gtoggle)
3352 Toggle debug information generation.
3354 gvariable-location-views
3355 Common Driver Var(debug_variable_location_views, 1)
3356 Augment variable location lists with progressive views.
3358 gvariable-location-views=incompat5
3359 Common Driver RejectNegative Var(debug_variable_location_views, -1) Init(2)
3361 gvms
3362 Common Driver JoinedOrMissing Negative(gxcoff)
3363 Generate debug information in VMS format.
3365 gxcoff
3366 Common Driver JoinedOrMissing Negative(gxcoff+)
3367 Generate debug information in XCOFF format.
3369 gxcoff+
3370 Common Driver JoinedOrMissing Negative(gdwarf)
3371 Generate debug information in extended XCOFF format.
3373 Enum
3374 Name(compressed_debug_sections) Type(int)
3376 ; Since -gz= is completely handled in specs, the values aren't used and we
3377 ; assign arbitrary constants.
3378 EnumValue
3379 Enum(compressed_debug_sections) String(none) Value(0)
3381 EnumValue
3382 Enum(compressed_debug_sections) String(zlib) Value(1)
3384 EnumValue
3385 Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
3388 Common Driver
3389 Generate compressed debug sections.
3392 Common Driver RejectNegative Joined Enum(compressed_debug_sections)
3393 -gz=<format>    Generate compressed debug sections in format <format>.
3396 Driver Joined Separate
3398 iplugindir=
3399 Common Joined Var(plugindir_string) Init(0)
3400 -iplugindir=<dir>       Set <dir> to be the default plugin directory.
3402 imultiarch
3403 Common Joined Separate RejectDriver Var(imultiarch) Init(0)
3404 -imultiarch <dir>       Set <dir> to be the multiarch include subdirectory.
3407 Driver Joined Separate
3410 Driver
3412 no-canonical-prefixes
3413 Driver
3415 nodefaultlibs
3416 Driver
3418 nostartfiles
3419 Driver
3421 nolibc
3422 Driver
3424 nostdlib
3425 Driver
3428 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
3429 -o <file>       Place output into <file>.
3432 Common Var(profile_flag)
3433 Enable function profiling.
3435 pass-exit-codes
3436 Driver Var(pass_exit_codes)
3438 pedantic
3439 Common Alias(Wpedantic)
3441 pedantic-errors
3442 Common Var(flag_pedantic_errors)
3443 Like -pedantic but issue them as errors.
3446 Driver
3448 pipe
3449 Driver Var(use_pipes)
3451 print-file-name=
3452 Driver JoinedOrMissing Var(print_file_name)
3454 print-libgcc-file-name
3455 Driver
3457 print-multi-directory
3458 Driver Var(print_multi_directory)
3460 print-multi-lib
3461 Driver Var(print_multi_lib)
3463 print-multi-os-directory
3464 Driver Var(print_multi_os_directory)
3466 print-multiarch
3467 Driver Var(print_multiarch)
3469 print-prog-name=
3470 Driver JoinedOrMissing Var(print_prog_name)
3472 print-search-dirs
3473 Driver Var(print_search_dirs)
3475 print-sysroot
3476 Driver Var(print_sysroot)
3478 print-sysroot-headers-suffix
3479 Driver Var(print_sysroot_headers_suffix)
3481 quiet
3482 Common Var(quiet_flag) RejectDriver
3483 Do not display functions compiled or elapsed time.
3486 Driver
3489 Driver
3491 save-temps
3492 Driver
3494 save-temps=
3495 Driver Joined
3498 Driver
3500 time
3501 Driver Var(report_times)
3503 time=
3504 Driver JoinedOrMissing
3507 Driver Joined Separate
3509 undef
3510 Driver
3511 ; C option, but driver must not handle as "-u ndef".
3514 Common Driver Var(verbose_flag)
3515 Enable verbose output.
3517 version
3518 Common Var(version_flag) RejectDriver
3519 Display the compiler's version.
3522 Common Var(inhibit_warnings)
3523 Suppress warnings.
3525 wrapper
3526 Driver Separate Var(wrapper_string)
3529 Driver Joined Separate
3531 shared
3532 Driver RejectNegative Negative(static-pie)
3533 Create a shared library.
3535 shared-libgcc
3536 Driver
3538 specs
3539 Driver Separate Alias(specs=)
3541 specs=
3542 Driver Joined
3544 static
3545 Driver
3547 static-libgcc
3548 Driver
3550 static-libgfortran
3551 Driver
3552 ; Documented for Fortran, but always accepted by driver.
3554 static-libphobos
3555 Driver
3556 ; Documented for D, but always accepted by driver.
3558 static-libstdc++
3559 Driver
3561 static-libgo
3562 Driver
3563 ; Documented for Go, but always accepted by driver.
3565 static-libasan
3566 Driver
3568 static-libhwasan
3569 Driver
3571 static-libtsan
3572 Driver
3574 static-liblsan
3575 Driver
3577 static-libubsan
3578 Driver
3580 symbolic
3581 Driver
3583 no-pie
3584 Driver RejectNegative Negative(shared)
3585 Don't create a dynamically linked position independent executable.
3588 Driver RejectNegative Negative(no-pie)
3589 Create a dynamically linked position independent executable.
3591 static-pie
3592 Driver RejectNegative Negative(pie)
3593 Create a static position independent executable.
3596 Driver Joined Separate
3598 fipa-ra
3599 Common Var(flag_ipa_ra) Optimization
3600 Use caller save register across calls if possible.
3602 ; This comment is to ensure we retain the blank line above.