Daily bump.
[official-gcc.git] / gcc / common.opt
blobde9b848eda5e0a53dc9cd7190d535d4212c41ed7
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 Driver
490 Driver Negative(Qy)
493 Driver Negative(Qn)
496 Driver Joined Separate
499 Driver
502 Driver Joined Separate
504 Tbss
505 Driver Separate
507 Tbss=
508 Driver Joined
510 Tdata
511 Driver Separate
513 Tdata=
514 Driver Joined
516 Ttext
517 Driver Separate
519 Ttext=
520 Driver Joined
523 Common RejectNegative Warning Alias(Wextra)
524 This switch is deprecated; use -Wextra instead.
527 Driver JoinedOrMissing RejectNegative
530 Driver JoinedOrMissing RejectNegative
533 Driver JoinedOrMissing RejectNegative
535 Waggregate-return
536 Common Var(warn_aggregate_return) Warning
537 Warn about returning structures, unions or arrays.
539 Waggressive-loop-optimizations
540 Common Var(warn_aggressive_loop_optimizations) Init(1) Warning
541 Warn if a loop with constant number of iterations triggers undefined behavior.
543 Warray-bounds
544 Common Var(warn_array_bounds) Warning
545 Warn if an array is accessed out of bounds.
547 Warray-bounds=
548 Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2)
549 Warn if an array is accessed out of bounds.
551 Wattributes
552 Common Var(warn_attributes) Init(1) Warning
553 Warn about inappropriate attribute usage.
555 Wattributes=
556 Common Joined
557 Do not warn about specified attributes.
559 Wattribute-alias
560 Common Alias(Wattribute_alias=, 1, 0) Warning
561 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
563 Wattribute-alias=
564 Common Joined RejectNegative UInteger Var(warn_attribute_alias) Init(1) Warning IntegerRange(0, 2)
565 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
567 Wcannot-profile
568 Common Var(warn_cannot_profile) Init(1) Warning
569 Warn when profiling instrumentation was requested, but could not be applied to
570 a certain function.
572 Wcast-align
573 Common Var(warn_cast_align) Warning
574 Warn about pointer casts which increase alignment.
576 Wcast-align=strict
577 Common Var(warn_cast_align,2) Warning
578 Warn about pointer casts which increase alignment.
580 Wcpp
581 Common Var(warn_cpp) Init(1) Warning
582 Warn when a #warning directive is encountered.
584 Wattribute-warning
585 Common Var(warn_attribute_warning) Init(1) Warning
586 Warn about uses of __attribute__((warning)) declarations.
588 Wdeprecated
589 Common Var(warn_deprecated) Init(1) Warning
590 Warn if a deprecated compiler feature, class, method, or field is used.
592 Wdeprecated-declarations
593 Common Var(warn_deprecated_decl) Init(1) Warning
594 Warn about uses of __attribute__((deprecated)) declarations.
596 Wdisabled-optimization
597 Common Var(warn_disabled_optimization) Warning
598 Warn when an optimization pass is disabled.
600 Werror
601 Common Var(warnings_are_errors)
602 Treat all warnings as errors.
604 Werror=
605 Common Joined
606 Treat specified warning as error.
608 Wextra
609 Common Var(extra_warnings) Warning
610 Print extra (possibly unwanted) warnings.
612 Wfatal-errors
613 Common Var(flag_fatal_errors)
614 Exit on the first error occurred.
616 Wframe-larger-than=
617 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_frame_larger_than_size) Init(HOST_WIDE_INT_MAX)
618 -Wframe-larger-than=<byte-size> Warn if a function's stack frame requires in excess of <byte-size>.
620 Wno-frame-larger-than
621 Common Alias(Wframe-larger-than=,18446744073709551615EiB,none) Warning
622 Disable -Wframe-larger-than= warning.  Equivalent to -Wframe-larger-than=<SIZE_MAX> or larger.
624 Wfree-nonheap-object
625 Common Var(warn_free_nonheap_object) Init(1) Warning
626 Warn when attempting to free a non-heap object.
628 Whsa
629 Common Ignore Warning
630 Does nothing.  Preserved for backward compatibility.
632 Wimplicit-fallthrough
633 Common Alias(Wimplicit-fallthrough=,3,0) Warning
635 Wimplicit-fallthrough=
636 Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5)
637 Warn when a switch case falls through.
639 Winline
640 Common Var(warn_inline) Warning Optimization
641 Warn when an inlined function cannot be inlined.
643 Winvalid-memory-model
644 Common Var(warn_invalid_memory_model) Init(1) Warning
645 Warn when an atomic memory model parameter is known to be outside the valid range.
647 Wlarger-than-
648 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
650 Wlarger-than=
651 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_larger_than_size) Init(HOST_WIDE_INT_MAX)
652 -Wlarger-than=<byte-size>       Warn if an object's size exceeds <byte-size>.
654 Wno-larger-than
655 Common Alias(Wlarger-than=,18446744073709551615EiB,none) Warning
656 Disable -Wlarger-than= warning.  Equivalent to -Wlarger-than=<SIZE_MAX> or larger.
658 Wnonnull-compare
659 Var(warn_nonnull_compare) Warning
660 Warn if comparing pointer parameter with nonnull attribute with NULL.
662 Wnull-dereference
663 Common Var(warn_null_dereference) Warning
664 Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
666 Wunsafe-loop-optimizations
667 Common Ignore Warning
668 Does nothing. Preserved for backward compatibility.
670 Wmissing-noreturn
671 Common Warning Alias(Wsuggest-attribute=noreturn)
673 Wodr
674 Common Var(warn_odr_violations) Init(1) Warning
675 Warn about some C++ One Definition Rule violations during link time optimization.
677 Woverflow
678 Common Var(warn_overflow) Init(1) Warning
679 Warn about overflow in arithmetic expressions.
681 Wlto-type-mismatch
682 Common Var(warn_lto_type_mismatch) Init(1) Warning
683 During link time optimization warn about mismatched types of global declarations.
685 Wpacked
686 Common Var(warn_packed) Warning
687 Warn when the packed attribute has no effect on struct layout.
689 Wpadded
690 Common Var(warn_padded) Warning
691 Warn when padding is required to align structure members.
693 Wpedantic
694 Common Var(pedantic) Init(0) Warning
695 Issue warnings needed for strict compliance to the standard.
697 Wreturn-local-addr
698 Common Var(warn_return_local_addr) Init(1) Warning
699 Warn about returning a pointer/reference to a local or temporary variable.
701 Wshadow
702 Common Var(warn_shadow) Warning
703 Warn when one variable shadows another.  Same as -Wshadow=global.
705 Wshadow=global
706 Common Warning Alias(Wshadow)
707 Warn when one variable shadows another (globally).
709 Wshadow=local
710 Common Var(warn_shadow_local) Warning EnabledBy(Wshadow)
711 Warn when one local variable shadows another local variable or parameter.
713 Wshadow-local
714 Common Warning Undocumented Alias(Wshadow=local)
716 Wshadow=compatible-local
717 Common Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local)
718 Warn when one local variable shadows another local variable or parameter of compatible type.
720 Wshadow-compatible-local
721 Common Warning Undocumented Alias(Wshadow=compatible-local)
723 Wstack-protector
724 Common Var(warn_stack_protect) Warning
725 Warn when not issuing stack smashing protection for some reason.
727 Wstack-usage=
728 Common Joined RejectNegative Host_Wide_Int ByteSize Var(warn_stack_usage) Warning Init(HOST_WIDE_INT_MAX)
729 -Wstack-usage=<byte-size>       Warn if stack usage might exceed <byte-size>.
731 Wno-stack-usage
732 Common Alias(Wstack-usage=,18446744073709551615EiB,none) Warning
733 Disable Wstack-usage= warning.  Equivalent to Wstack-usage=<SIZE_MAX> or larger.
735 Wstrict-aliasing
736 Common Warning
737 Warn about code which might break strict aliasing rules.
739 Wstrict-aliasing=
740 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
741 Warn about code which might break strict aliasing rules.
743 Wstrict-overflow
744 Common Warning
745 Warn about optimizations that assume that signed overflow is undefined.
747 Wstrict-overflow=
748 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
749 Warn about optimizations that assume that signed overflow is undefined.
751 Wsuggest-attribute=cold
752 Common Var(warn_suggest_attribute_cold) Warning
753 Warn about functions which might be candidates for __attribute__((cold)).
755 Wsuggest-attribute=const
756 Common Var(warn_suggest_attribute_const) Warning
757 Warn about functions which might be candidates for __attribute__((const)).
759 Wsuggest-attribute=pure
760 Common Var(warn_suggest_attribute_pure) Warning
761 Warn about functions which might be candidates for __attribute__((pure)).
763 Wsuggest-attribute=noreturn
764 Common Var(warn_suggest_attribute_noreturn) Warning
765 Warn about functions which might be candidates for __attribute__((noreturn)).
767 Wsuggest-attribute=malloc
768 Common Var(warn_suggest_attribute_malloc) Warning
769 Warn about functions which might be candidates for __attribute__((malloc)).
771 Wsuggest-final-types
772 Common Var(warn_suggest_final_types) Warning
773 Warn about C++ polymorphic types where adding final keyword would improve code quality.
775 Wsuggest-final-methods
776 Common Var(warn_suggest_final_methods) Warning
777 Warn about C++ virtual methods where adding final keyword would improve code quality.
779 Wswitch-unreachable
780 Common Var(warn_switch_unreachable) Warning Init(1)
781 Warn about statements between switch's controlling expression and the first
782 case.
784 Wsystem-headers
785 Common Var(warn_system_headers) Warning
786 Do not suppress warnings from system headers.
788 Wtrampolines
789 Common Var(warn_trampolines) Warning
790 Warn whenever a trampoline is generated.
792 Wtype-limits
793 Common Var(warn_type_limits) Warning EnabledBy(Wextra)
794 Warn if a comparison is always true or always false due to the limited range of the data type.
796 Wuninitialized
797 Common Var(warn_uninitialized) Warning EnabledBy(Wextra)
798 Warn about uninitialized automatic variables.
800 Wmaybe-uninitialized
801 Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
802 Warn about maybe uninitialized automatic variables.
804 Wunreachable-code
805 Common Ignore Warning
806 Does nothing. Preserved for backward compatibility.
808 Wunused
809 Common Var(warn_unused) Init(0) Warning
810 Enable all -Wunused- warnings.
812 Wunused-but-set-parameter
813 Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
814 Warn when a function parameter is only set, otherwise unused.
816 Wunused-but-set-variable
817 Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
818 Warn when a variable is only set, otherwise unused.
820 Wunused-function
821 Common Var(warn_unused_function) Warning EnabledBy(Wunused)
822 Warn when a function is unused.
824 Wunused-label
825 Common Var(warn_unused_label) Warning EnabledBy(Wunused)
826 Warn when a label is unused.
828 Wunused-parameter
829 Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
830 Warn when a function parameter is unused.
832 Wunused-value
833 Common Var(warn_unused_value) Warning EnabledBy(Wunused)
834 Warn when an expression value is unused.
836 Wunused-variable
837 Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
838 Warn when a variable is unused.
840 Wcoverage-mismatch
841 Common Var(warn_coverage_mismatch) Init(1) Warning
842 Warn in case profiles in -fprofile-use do not match.
844 Wcoverage-invalid-line-number
845 Common Var(warn_coverage_invalid_linenum) Init(1) Warning
846 Warn in case a function ends earlier than it begins due to an invalid linenum macros.
848 Wmissing-profile
849 Common Var(warn_missing_profile) Init(1) Warning
850 Warn in case profiles in -fprofile-use do not exist.
852 Wvector-operation-performance
853 Common Var(warn_vector_operation_performance) Warning
854 Warn when a vector operation is compiled outside the SIMD.
856 Wtsan
857 Common Var(warn_tsan) Init(1) Warning
858 Warn about unsupported features in ThreadSanitizer.
860 Xassembler
861 Driver Separate
863 Xlinker
864 Driver Separate
866 Xpreprocessor
867 Driver Separate
870 Driver
872 aux-info
873 Common Separate Var(aux_info_file_name)
874 -aux-info <file>        Emit declaration information into <file>.
876 aux-info=
877 Common Joined Alias(aux-info)
879 coverage
880 Driver
883 Driver
886 Common Joined
887 -d<letters>     Enable dumps from specific passes of the compiler.
889 dumpbase
890 Driver Common Separate Var(dump_base_name)
891 -dumpbase <file>        Set the file basename to be used for dumps.
893 dumpbase-ext
894 Driver Common Separate Var(dump_base_ext)
895 -dumpbase-ext .<ext>    Drop a trailing .<ext> from the dump basename to name auxiliary output files.
897 dumpdir
898 Driver Common Separate Var(dump_dir_name)
899 -dumpdir <dir>  Set the directory name to be used for dumps.
901 dumpmachine
902 Driver
904 dumpspecs
905 Driver
907 dumpversion
908 Driver
910 dumpfullversion
911 Driver
914 Driver Joined Separate
916 ; This option has historically been passed down to the linker by an
917 ; accident of a %{e*} spec, so ensure it continues to be passed down
918 ; as a single option.  The supported option for this purpose is
919 ; -rdynamic.  See PR 47390.
920 export-dynamic
921 Driver Undocumented
923 ; The version of the C++ ABI in use.  The following values are allowed:
925 ; 0: The version of the ABI believed most conformant with the C++ ABI
926 ;    specification.  This ABI may change as bugs are discovered and fixed.
927 ;    Therefore, 0 will not necessarily indicate the same ABI in different
928 ;    versions of G++.
930 ; 1: The version of the ABI first used in G++ 3.2.  No longer selectable.
932 ; 2: The version of the ABI first used in G++ 3.4, and the default
933 ;    until GCC 4.9.
935 ; 3: The version of the ABI that fixes the missing underscore
936 ;    in template non-type arguments of pointer type.
938 ; 4: The version of the ABI that introduces unambiguous mangling of
939 ;    vector types.  First selectable in G++ 4.5.
941 ; 5: The version of the ABI that ignores attribute const/noreturn
942 ;    in function pointer mangling, and corrects mangling of decltype and
943 ;    function parameters used in other parameters and the return type.
944 ;    First selectable in G++ 4.6.
946 ; 6: The version of the ABI that doesn't promote scoped enums to int and
947 ;    changes the mangling of template argument packs, const/static_cast,
948 ;    prefix ++ and --, and a class scope function used as a template
949 ;    argument.
950 ;    First selectable in G++ 4.7.
952 ; 7: The version of the ABI that treats nullptr_t as a builtin type and
953 ;    corrects the mangling of lambdas in default argument scope.
954 ;    First selectable in G++ 4.8.
956 ; 8: The version of the ABI that corrects the substitution behavior of
957 ;    function types with function-cv-qualifiers.
958 ;    First selectable in G++ 4.9 and default in G++ 5.
960 ; 9: The version of the ABI that corrects the alignment of nullptr_t.
961 ;    First selectable and default in G++ 5.2.
963 ; 10: The version of the ABI that mangles attributes that affect type
964 ;     identity, such as ia32 calling convention attributes (stdcall, etc.)
965 ;     Default in G++ 6 (set in c_common_post_options).
967 ; 11: The version of the ABI that corrects mangling of sizeof... expressions
968 ;     and introduces new inheriting constructor handling.
969 ;     Default in G++ 7.
971 ; 12: Corrects the calling convention for classes with only deleted copy/move
972 ;     constructors and changes passing/returning of empty records.
973 ;     Default in G++ 8.1.
975 ; 13: Fixes the accidental change in 12 to the calling convention for classes
976 ;     with deleted copy constructor and trivial move constructor.
977 ;     Default in G++ 8.2.
979 ; 14: Corrects the mangling of nullptr expression.
980 ;     Default in G++ 10.
982 ; 15: Corrects G++ 10 ABI tag regression [PR98481].
983 ;     Available, but not default, in G++ 10.3.
985 ; 16: Changes the mangling of __alignof__ to be distinct from that of alignof.
986 ;     Adds missing 'on' in mangling of operator names in some cases.
987 ;     Default in G++ 11.
989 ; Additional positive integers will be assigned as new versions of
990 ; the ABI become the default version of the ABI.
991 fabi-version=
992 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
993 The version of the C++ ABI in use.
995 faggressive-loop-optimizations
996 Common Var(flag_aggressive_loop_optimizations) Optimization Init(1)
997 Aggressively optimize loops using language constraints.
999 falign-functions
1000 Common Var(flag_align_functions) Optimization
1001 Align the start of functions.
1003 falign-functions=
1004 Common RejectNegative Joined Var(str_align_functions) Optimization
1006 flimit-function-alignment
1007 Common Var(flag_limit_function_alignment) Optimization Init(0)
1009 falign-jumps
1010 Common Var(flag_align_jumps) Optimization
1011 Align labels which are only reached by jumping.
1013 falign-jumps=
1014 Common RejectNegative Joined Var(str_align_jumps) Optimization
1016 falign-labels
1017 Common Var(flag_align_labels) Optimization
1018 Align all labels.
1020 falign-labels=
1021 Common RejectNegative Joined Var(str_align_labels) Optimization
1023 falign-loops
1024 Common Var(flag_align_loops) Optimization
1025 Align the start of loops.
1027 falign-loops=
1028 Common RejectNegative Joined Var(str_align_loops) Optimization
1030 fallow-store-data-races
1031 Common Var(flag_store_data_races) Optimization
1032 Allow the compiler to introduce new data races on stores.
1034 fanalyzer
1035 Common Var(flag_analyzer)
1036 Enable static analysis pass.
1038 fargument-alias
1039 Common Ignore
1040 Does nothing. Preserved for backward compatibility.
1042 fargument-noalias
1043 Common Ignore
1044 Does nothing. Preserved for backward compatibility.
1046 fargument-noalias-global
1047 Common Ignore
1048 Does nothing. Preserved for backward compatibility.
1050 fargument-noalias-anything
1051 Common Ignore
1052 Does nothing. Preserved for backward compatibility.
1054 fsanitize=
1055 Common Driver Joined
1056 Select what to sanitize.
1058 fsanitize-coverage=
1059 Common Joined RejectNegative Enum(sanitize_coverage)
1060 Select type of coverage sanitization.
1062 Enum
1063 Name(sanitize_coverage) Type(int)
1065 EnumValue
1066 Enum(sanitize_coverage) String(trace-pc) Value(SANITIZE_COV_TRACE_PC)
1068 EnumValue
1069 Enum(sanitize_coverage) String(trace-cmp) Value(SANITIZE_COV_TRACE_CMP)
1071 fasan-shadow-offset=
1072 Common Joined RejectNegative Var(common_deferred_options) Defer
1073 -fasan-shadow-offset=<number>   Use custom shadow memory offset.
1075 fsanitize-sections=
1076 Common Joined RejectNegative Var(common_deferred_options) Defer
1077 -fsanitize-sections=<sec1,sec2,...>     Sanitize global variables
1078 in user-defined sections.
1080 fsanitize-recover=
1081 Common Joined
1082 After diagnosing undefined behavior attempt to continue execution.
1084 fsanitize-recover
1085 Common
1086 This switch is deprecated; use -fsanitize-recover= instead.
1088 fsanitize-address-use-after-scope
1089 Common Driver Var(flag_sanitize_address_use_after_scope) Init(0)
1091 fsanitize-undefined-trap-on-error
1092 Common Driver Var(flag_sanitize_undefined_trap_on_error) Init(0)
1093 Use trap instead of a library function for undefined behavior sanitization.
1095 fasynchronous-unwind-tables
1096 Common Var(flag_asynchronous_unwind_tables) Optimization
1097 Generate unwind tables that are exact at each instruction boundary.
1099 fauto-inc-dec
1100 Common Var(flag_auto_inc_dec) Init(1) Optimization
1101 Generate auto-inc/dec instructions.
1103 fauto-profile
1104 Common Var(flag_auto_profile)
1105 Use sample profile information for call graph node weights. The default
1106 profile file is fbdata.afdo in 'pwd'.
1108 fauto-profile=
1109 Common Joined RejectNegative Var(auto_profile_file)
1110 Use sample profile information for call graph node weights. The profile
1111 file is specified in the argument.
1113 ; -fcheck-bounds causes gcc to generate array bounds checks.
1114 ; For C, C++ and ObjC: defaults off.
1115 ; For Java: defaults to on.
1116 ; For Fortran: defaults to off.
1117 fbounds-check
1118 Common Var(flag_bounds_check)
1119 Generate code to check bounds before indexing arrays.
1121 fbranch-count-reg
1122 Common Var(flag_branch_on_count_reg) Optimization
1123 Replace add, compare, branch with branch on count register.
1125 fbranch-probabilities
1126 Common Var(flag_branch_probabilities) Optimization
1127 Use profiling information for branch probabilities.
1129 fbranch-target-load-optimize
1130 Common Ignore
1131 Does nothing.  Preserved for backward compatibility.
1133 fbranch-target-load-optimize2
1134 Common Ignore
1135 Does nothing.  Preserved for backward compatibility.
1137 fbtr-bb-exclusive
1138 Common Ignore
1139 Does nothing.  Preserved for backward compatibility.
1141 fcallgraph-info
1142 Common RejectNegative Var(flag_callgraph_info) Init(NO_CALLGRAPH_INFO);
1143 Output callgraph information on a per-file basis.
1145 fcallgraph-info=
1146 Common RejectNegative Joined
1147 Output callgraph information on a per-file basis with decorations.
1149 fcall-saved-
1150 Common Joined RejectNegative Var(common_deferred_options) Defer
1151 -fcall-saved-<register> Mark <register> as being preserved across functions.
1153 fcall-used-
1154 Common Joined RejectNegative Var(common_deferred_options) Defer
1155 -fcall-used-<register>  Mark <register> as being corrupted by function calls.
1157 ; Nonzero for -fcaller-saves: allocate values in regs that need to
1158 ; be saved across function calls, if that produces overall better code.
1159 ; Optional now, so people can test it.
1160 fcaller-saves
1161 Common Var(flag_caller_saves) Optimization
1162 Save registers around function calls.
1164 fcheck-data-deps
1165 Common Ignore
1166 This switch is deprecated; do not use.
1168 fcheck-new
1169 Common Var(flag_check_new)
1170 Check the return value of new in C++.
1172 fchecking
1173 Common Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0)
1174 Perform internal consistency checkings.
1176 fchecking=
1177 Common Joined RejectNegative UInteger Var(flag_checking)
1178 Perform internal consistency checkings.
1180 fcode-hoisting
1181 Common Var(flag_code_hoisting) Optimization
1182 Enable code hoisting.
1184 fcombine-stack-adjustments
1185 Common Var(flag_combine_stack_adjustments) Optimization
1186 Looks for opportunities to reduce stack adjustments and stack references.
1188 fcommon
1189 Common Var(flag_no_common,0) Init(1)
1190 Put uninitialized globals in the common section.
1192 fcompare-debug
1193 Driver
1194 ; Converted by the driver to -fcompare-debug= options.
1196 fcompare-debug=
1197 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
1198 -fcompare-debug[=<opts>]        Compile with and without e.g. -gtoggle, and compare the final-insns dump.
1200 fcompare-debug-second
1201 Common Driver RejectNegative Var(flag_compare_debug)
1202 Run only the second compilation of -fcompare-debug.
1204 fcompare-elim
1205 Common Var(flag_compare_elim_after_reload) Optimization
1206 Perform comparison elimination after register allocation has finished.
1208 fconserve-stack
1209 Common Var(flag_conserve_stack) Optimization
1210 Do not perform optimizations increasing noticeably stack usage.
1212 fcprop-registers
1213 Common Var(flag_cprop_registers) Optimization
1214 Perform a register copy-propagation optimization pass.
1216 fcrossjumping
1217 Common Var(flag_crossjumping) Optimization
1218 Perform cross-jumping optimization.
1220 fcse-follow-jumps
1221 Common Var(flag_cse_follow_jumps) Optimization
1222 When running CSE, follow jumps to their targets.
1224 fcse-skip-blocks
1225 Common Ignore
1226 Does nothing.  Preserved for backward compatibility.
1228 fcx-limited-range
1229 Common Var(flag_cx_limited_range) Optimization SetByCombined
1230 Omit range reduction step when performing complex division.
1232 fcx-fortran-rules
1233 Common Var(flag_cx_fortran_rules) Optimization
1234 Complex multiplication and division follow Fortran rules.
1236 fdata-sections
1237 Common Var(flag_data_sections)
1238 Place data items into their own section.
1240 fdbg-cnt-list
1241 Common Var(flag_dbg_cnt_list)
1242 List all available debugging counters with their limits and counts.
1244 fdbg-cnt=
1245 Common RejectNegative Joined Var(common_deferred_options) Defer
1246 -fdbg-cnt=<counter>[:<lower_limit1>-]<upper_limit1>[:<lower_limit2>-<upper_limit2>:...][,<counter>:...] Set the debug counter limit.
1248 fdebug-prefix-map=
1249 Common Joined RejectNegative Var(common_deferred_options) Defer
1250 -fdebug-prefix-map=<old>=<new>  Map one directory name to another in debug information.
1252 ffile-prefix-map=
1253 Common Joined RejectNegative Var(common_deferred_options) Defer
1254 -ffile-prefix-map=<old>=<new>   Map one directory name to another in compilation result.
1256 fdebug-types-section
1257 Common Var(flag_debug_types_section) Init(0)
1258 Output .debug_types section when using DWARF v4 debuginfo.
1260 ; Nonzero for -fdefer-pop: don't pop args after each function call
1261 ; instead save them up to pop many calls' args with one insns.
1262 fdefer-pop
1263 Common Var(flag_defer_pop) Optimization
1264 Defer popping functions args from stack until later.
1266 fdelayed-branch
1267 Common Var(flag_delayed_branch) Optimization
1268 Attempt to fill delay slots of branch instructions.
1270 fdelete-dead-exceptions
1271 Common Var(flag_delete_dead_exceptions) Init(0) Optimization
1272 Delete dead instructions that may throw exceptions.
1274 fdelete-null-pointer-checks
1275 Common Var(flag_delete_null_pointer_checks) Init(-1) Optimization
1276 Delete useless null pointer checks.
1278 fdevirtualize-at-ltrans
1279 Common Var(flag_ltrans_devirtualize)
1280 Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
1282 fdevirtualize-speculatively
1283 Common Var(flag_devirtualize_speculatively) Optimization
1284 Perform speculative devirtualization.
1286 fdevirtualize
1287 Common Var(flag_devirtualize) Optimization
1288 Try to convert virtual calls to direct ones.
1290 fdiagnostics-show-location=
1291 Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
1292 -fdiagnostics-show-location=[once|every-line]   How often to emit source location at the beginning of line-wrapped diagnostics.
1294 ; Required for these enum values.
1295 SourceInclude
1296 pretty-print.h
1298 Enum
1299 Name(diagnostic_prefixing_rule) Type(int)
1301 EnumValue
1302 Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
1304 EnumValue
1305 Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
1307 fdiagnostics-show-caret
1308 Common Var(flag_diagnostics_show_caret) Init(1)
1309 Show the source line with a caret indicating the column.
1311 fdiagnostics-show-labels
1312 Common Var(flag_diagnostics_show_labels) Init(1)
1313 Show labels annotating ranges of source code when showing source.
1315 fdiagnostics-show-line-numbers
1316 Common Var(flag_diagnostics_show_line_numbers) Init(1)
1317 Show line numbers in the left margin when showing source.
1319 fdiagnostics-color
1320 Common Alias(fdiagnostics-color=,always,never)
1323 fdiagnostics-color=
1324 Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
1325 -fdiagnostics-color=[never|always|auto] Colorize diagnostics.
1327 ; Required for these enum values.
1328 SourceInclude
1329 diagnostic-color.h
1331 Enum
1332 Name(diagnostic_color_rule) Type(int)
1334 EnumValue
1335 Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
1337 EnumValue
1338 Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
1340 EnumValue
1341 Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
1343 fdiagnostics-urls=
1344 Driver Common Joined RejectNegative Var(flag_diagnostics_show_urls) Enum(diagnostic_url_rule) Init(DIAGNOSTICS_URL_AUTO)
1345 -fdiagnostics-urls=[never|always|auto]  Embed URLs in diagnostics.
1347 ; Required for these enum values.
1348 SourceInclude
1349 diagnostic-url.h
1351 Enum
1352 Name(diagnostic_url_rule) Type(int)
1354 EnumValue
1355 Enum(diagnostic_url_rule) String(never) Value(DIAGNOSTICS_URL_NO)
1357 EnumValue
1358 Enum(diagnostic_url_rule) String(always) Value(DIAGNOSTICS_URL_YES)
1360 EnumValue
1361 Enum(diagnostic_url_rule) String(auto) Value(DIAGNOSTICS_URL_AUTO)
1363 fdiagnostics-column-unit=
1364 Common Joined RejectNegative Enum(diagnostics_column_unit)
1365 -fdiagnostics-column-unit=[display|byte]        Select whether column numbers are output as display columns (default) or raw bytes.
1367 fdiagnostics-column-origin=
1368 Common Joined RejectNegative UInteger
1369 -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.
1371 fdiagnostics-format=
1372 Common Joined RejectNegative Enum(diagnostics_output_format)
1373 -fdiagnostics-format=[text|json]        Select output format.
1375 fdiagnostics-escape-format=
1376 Common Joined RejectNegative Enum(diagnostics_escape_format)
1377 -fdiagnostics-escape-format=[unicode|bytes]     Select how to escape non-printable-ASCII bytes in the source for diagnostics that suggest it.
1379 ; Required for these enum values.
1380 SourceInclude
1381 diagnostic.h
1383 Enum
1384 Name(diagnostics_column_unit) Type(int)
1386 EnumValue
1387 Enum(diagnostics_column_unit) String(display) Value(DIAGNOSTICS_COLUMN_UNIT_DISPLAY)
1389 EnumValue
1390 Enum(diagnostics_column_unit) String(byte) Value(DIAGNOSTICS_COLUMN_UNIT_BYTE)
1392 Enum
1393 Name(diagnostics_escape_format) Type(int)
1395 EnumValue
1396 Enum(diagnostics_escape_format) String(unicode) Value(DIAGNOSTICS_ESCAPE_FORMAT_UNICODE)
1398 EnumValue
1399 Enum(diagnostics_escape_format) String(bytes) Value(DIAGNOSTICS_ESCAPE_FORMAT_BYTES)
1401 Enum
1402 Name(diagnostics_output_format) Type(int)
1404 EnumValue
1405 Enum(diagnostics_output_format) String(text) Value(DIAGNOSTICS_OUTPUT_FORMAT_TEXT)
1407 EnumValue
1408 Enum(diagnostics_output_format) String(json) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON)
1410 fdiagnostics-parseable-fixits
1411 Common Var(flag_diagnostics_parseable_fixits)
1412 Print fix-it hints in machine-readable form.
1414 fdiagnostics-generate-patch
1415 Common Var(flag_diagnostics_generate_patch)
1416 Print fix-it hints to stderr in unified diff format.
1418 fdiagnostics-show-option
1419 Common Var(flag_diagnostics_show_option) Init(1)
1420 Amend appropriate diagnostic messages with the command line option that controls them.
1422 fdiagnostics-show-cwe
1423 Common Var(flag_diagnostics_show_cwe) Init(1)
1424 Print CWE identifiers for diagnostic messages, where available.
1426 fdiagnostics-path-format=
1427 Common Joined RejectNegative Var(flag_diagnostics_path_format) Enum(diagnostic_path_format) Init(DPF_INLINE_EVENTS)
1428 Specify how to print any control-flow path associated with a diagnostic.
1430 fdiagnostics-plain-output
1431 Driver Common RejectNegative
1432 Turn off any diagnostics features that complicate the output, such as line numbers, color, and warning URLs.
1434 ftabstop=
1435 Common Joined RejectNegative UInteger
1436 -ftabstop=<number>      Distance between tab stops for column reporting.
1438 Enum
1439 Name(diagnostic_path_format) Type(int)
1441 EnumValue
1442 Enum(diagnostic_path_format) String(none) Value(DPF_NONE)
1444 EnumValue
1445 Enum(diagnostic_path_format) String(separate-events) Value(DPF_SEPARATE_EVENTS)
1447 EnumValue
1448 Enum(diagnostic_path_format) String(inline-events) Value(DPF_INLINE_EVENTS)
1450 fdiagnostics-show-path-depths
1451 Common Var(flag_diagnostics_show_path_depths) Init(0)
1452 Show stack depths of events in paths.
1454 fdiagnostics-minimum-margin-width=
1455 Common Joined UInteger Var(diagnostics_minimum_margin_width) Init(6)
1456 Set minimum width of left margin of source code when showing source.
1458 fdisable-
1459 Common Joined RejectNegative Var(common_deferred_options) Defer
1460 -fdisable-[tree|rtl|ipa]-<pass>=range1+range2   Disable an optimization pass.
1462 fenable-
1463 Common Joined RejectNegative Var(common_deferred_options) Defer
1464 -fenable-[tree|rtl|ipa]-<pass>=range1+range2    Enable an optimization pass.
1466 fdump-
1467 Common Joined RejectNegative Var(common_deferred_options) Defer
1468 -fdump-<type>   Dump various compiler internals to a file.
1470 fdump-final-insns
1471 Driver RejectNegative
1473 fdump-final-insns=
1474 Common RejectNegative Joined Var(flag_dump_final_insns)
1475 -fdump-final-insns=filename     Dump to filename the insns at the end of translation.
1477 fdump-go-spec=
1478 Common RejectNegative Joined Var(flag_dump_go_spec)
1479 -fdump-go-spec=filename Write all declarations to file as Go code.
1481 fdump-noaddr
1482 Common Var(flag_dump_noaddr)
1483 Suppress output of addresses in debugging dumps.
1485 freport-bug
1486 Common Driver Var(flag_report_bug)
1487 Collect and dump debug information into temporary file if ICE in C/C++
1488 compiler occurred.
1490 fdump-internal-locations
1491 Common Var(flag_dump_locations) Init(0)
1492 Dump detailed information on GCC's internal representation of source code locations.
1494 fdump-passes
1495 Common Var(flag_dump_passes) Init(0)
1496 Dump optimization passes.
1498 fdump-unnumbered
1499 Common Var(flag_dump_unnumbered)
1500 Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
1502 fdump-unnumbered-links
1503 Common Var(flag_dump_unnumbered_links)
1504 Suppress output of previous and next insn numbers in debugging dumps.
1506 fdwarf2-cfi-asm
1507 Common Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1508 Enable CFI tables via GAS assembler directives.
1510 fearly-inlining
1511 Common Var(flag_early_inlining) Init(1) Optimization
1512 Perform early inlining.
1514 feliminate-dwarf2-dups
1515 Common Ignore
1516 Does nothing.  Preserved for backward compatibility.
1518 fipa-sra
1519 Common Var(flag_ipa_sra) Init(0) Optimization
1520 Perform interprocedural reduction of aggregates.
1522 feliminate-unused-debug-symbols
1523 Common Var(flag_debug_only_used_symbols) Init(1)
1524 Perform unused symbol elimination in debug info.
1526 feliminate-unused-debug-types
1527 Common Var(flag_eliminate_unused_debug_types) Init(1)
1528 Perform unused type elimination in debug info.
1530 femit-class-debug-always
1531 Common Var(flag_emit_class_debug_always) Init(0)
1532 Do not suppress C++ class debug information.
1534 fexceptions
1535 Common Var(flag_exceptions) Optimization EnabledBy(fnon-call-exceptions)
1536 Enable exception handling.
1538 fexpensive-optimizations
1539 Common Var(flag_expensive_optimizations) Optimization
1540 Perform a number of minor, expensive optimizations.
1542 fexcess-precision=
1543 Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision) Init(EXCESS_PRECISION_DEFAULT) Optimization SetByCombined
1544 -fexcess-precision=[fast|standard|16]   Specify handling of excess floating-point precision.
1546 Enum
1547 Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1549 EnumValue
1550 Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1552 EnumValue
1553 Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1555 EnumValue
1556 Enum(excess_precision) String(16) Value(EXCESS_PRECISION_FLOAT16)
1558 ; Whether we permit the extended set of values for FLT_EVAL_METHOD
1559 ; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11.
1560 fpermitted-flt-eval-methods=
1561 Common Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT)
1562 -fpermitted-flt-eval-methods=[c11|ts-18661]     Specify which values of FLT_EVAL_METHOD are permitted.
1564 Enum
1565 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)
1567 EnumValue
1568 Enum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11)
1570 EnumValue
1571 Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
1573 ffast-math
1574 Common Optimization
1576 ffat-lto-objects
1577 Common Var(flag_fat_lto_objects)
1578 Output lto objects containing both the intermediate language and binary output.
1580 ffinite-math-only
1581 Common Var(flag_finite_math_only) Optimization SetByCombined
1582 Assume no NaNs or infinities are generated.
1584 ffinite-loops
1585 Common Var(flag_finite_loops) Optimization Init(0)
1586 Assume that loops with an exit will terminate and not loop indefinitely.
1588 ffixed-
1589 Common Joined RejectNegative Var(common_deferred_options) Defer
1590 -ffixed-<register>      Mark <register> as being unavailable to the compiler.
1592 ffloat-store
1593 Common Var(flag_float_store) Optimization
1594 Don't allocate floats and doubles in extended-precision registers.
1596 fforce-addr
1597 Common Ignore
1598 Does nothing.  Preserved for backward compatibility.
1600 fforward-propagate
1601 Common Var(flag_forward_propagate) Optimization
1602 Perform a forward propagation pass on RTL.
1604 ffp-contract=
1605 Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
1606 -ffp-contract=[off|on|fast]     Perform floating-point expression contraction.
1608 Enum
1609 Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1611 EnumValue
1612 Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1614 ; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1615 EnumValue
1616 Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1618 EnumValue
1619 Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1621 ffp-int-builtin-inexact
1622 Common Var(flag_fp_int_builtin_inexact) Init(1) Optimization
1623 Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
1625 ; Nonzero means don't put addresses of constant functions in registers.
1626 ; Used for compiling the Unix kernel, where strange substitutions are
1627 ; done on the assembly output.
1628 ffunction-cse
1629 Common Var(flag_no_function_cse,0) Optimization
1630 Allow function addresses to be held in registers.
1632 ffunction-sections
1633 Common Var(flag_function_sections)
1634 Place each function into its own section.
1636 fgcse
1637 Common Var(flag_gcse) Optimization
1638 Perform global common subexpression elimination.
1640 fgcse-lm
1641 Common Var(flag_gcse_lm) Init(1) Optimization
1642 Perform enhanced load motion during global common subexpression elimination.
1644 fgcse-sm
1645 Common Var(flag_gcse_sm) Init(0) Optimization
1646 Perform store motion after global common subexpression elimination.
1648 fgcse-las
1649 Common Var(flag_gcse_las) Init(0) Optimization
1650 Perform redundant load after store elimination in global common subexpression
1651 elimination.
1653 fgcse-after-reload
1654 Common Var(flag_gcse_after_reload) Optimization
1655 Perform global common subexpression elimination after register allocation has
1656 finished.
1658 Enum
1659 Name(dwarf_gnat_encodings) Type(int)
1661 EnumValue
1662 Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
1664 EnumValue
1665 Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
1667 EnumValue
1668 Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
1670 fgnat-encodings=
1671 Common Enum(dwarf_gnat_encodings) Joined RejectNegative Undocumented Var(gnat_encodings)
1672 -fgnat-encodings=[all|gdb|minimal]      Select the balance between GNAT encodings and standard DWARF emitted in the debug information.
1674 ; This option is not documented yet as its semantics will change.
1675 fgraphite
1676 Common Var(flag_graphite) Optimization
1677 Enable in and out of Graphite representation.
1679 fgraphite-identity
1680 Common Var(flag_graphite_identity) Optimization
1681 Enable Graphite Identity transformation.
1683 fhoist-adjacent-loads
1684 Common Var(flag_hoist_adjacent_loads) Optimization
1685 Enable hoisting adjacent loads to encourage generating conditional move
1686 instructions.
1688 fkeep-gc-roots-live
1689 Common Undocumented Var(flag_keep_gc_roots_live) Optimization
1690 ; Always keep a pointer to a live memory block
1692 flarge-source-files
1693 Common Var(flag_large_source_files) Init(0)
1694 Improve GCC's ability to track column numbers in large source files,
1695 at the expense of slower compilation.
1697 floop-parallelize-all
1698 Common Var(flag_loop_parallelize_all) Optimization
1699 Mark all loops as parallel.
1701 floop-strip-mine
1702 Common Alias(floop-nest-optimize)
1703 Enable loop nest transforms.  Same as -floop-nest-optimize.
1705 floop-interchange
1706 Common Var(flag_loop_interchange) Optimization
1707 Enable loop interchange on trees.
1709 floop-block
1710 Common Alias(floop-nest-optimize)
1711 Enable loop nest transforms.  Same as -floop-nest-optimize.
1713 floop-unroll-and-jam
1714 Common Var(flag_unroll_jam) Optimization
1715 Perform unroll-and-jam on loops.
1717 fgnu-tm
1718 Common Var(flag_tm)
1719 Enable support for GNU transactional memory.
1721 fgnu-unique
1722 Common Var(flag_gnu_unique) Init(1)
1723 Use STB_GNU_UNIQUE if supported by the assembler.
1725 floop-flatten
1726 Common Ignore
1727 Does nothing. Preserved for backward compatibility.
1729 floop-nest-optimize
1730 Common Var(flag_loop_nest_optimize) Optimization
1731 Enable the loop nest optimizer.
1733 fstrict-volatile-bitfields
1734 Common Var(flag_strict_volatile_bitfields) Init(-1) Optimization
1735 Force bitfield accesses to match their type width.
1737 fstore-merging
1738 Common Var(flag_store_merging) Optimization
1739 Merge adjacent stores.
1741 fguess-branch-probability
1742 Common Var(flag_guess_branch_prob) Optimization
1743 Enable guessing of branch probabilities.
1745 fharden-compares
1746 Common Var(flag_harden_compares) Optimization
1747 Harden conditionals not used in branches, checking reversed conditions.
1749 fharden-conditional-branches
1750 Common Var(flag_harden_conditional_branches) Optimization
1751 Harden conditional branches by checking reversed conditions.
1753 ; Nonzero means ignore `#ident' directives.  0 means handle them.
1754 ; Generate position-independent code for executables if possible
1755 ; On SVR4 targets, it also controls whether or not to emit a
1756 ; string identifying the compiler.
1757 fident
1758 Common Var(flag_no_ident,0)
1759 Process #ident directives.
1761 fif-conversion
1762 Common Var(flag_if_conversion) Optimization
1763 Perform conversion of conditional jumps to branchless equivalents.
1765 fif-conversion2
1766 Common Var(flag_if_conversion2) Optimization
1767 Perform conversion of conditional jumps to conditional execution.
1769 fstack-reuse=
1770 Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
1771 -fstack-reuse=[all|named_vars|none]     Set stack reuse level for local variables.
1773 Enum
1774 Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1776 EnumValue
1777 Enum(stack_reuse_level) String(all) Value(SR_ALL)
1779 EnumValue
1780 Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1782 EnumValue
1783 Enum(stack_reuse_level) String(none) Value(SR_NONE)
1785 ftree-loop-if-convert
1786 Common Var(flag_tree_loop_if_convert) Init(-1) Optimization
1787 Convert conditional jumps in innermost loops to branchless equivalents.
1789 ftree-loop-if-convert-stores
1790 Common Ignore
1791 Does nothing. Preserved for backward compatibility.
1793 ; -finhibit-size-directive inhibits output of .size for ELF.
1794 ; This is used only for compiling crtstuff.c,
1795 ; and it may be extended to other effects
1796 ; needed for crtstuff.c on other systems.
1797 finhibit-size-directive
1798 Common Var(flag_inhibit_size_directive)
1799 Do not generate .size directives.
1801 findirect-inlining
1802 Common Var(flag_indirect_inlining) Optimization
1803 Perform indirect inlining.
1805 ; General flag to enable inlining.  Specifying -fno-inline will disable
1806 ; all inlining apart from always-inline functions.
1807 finline
1808 Common Var(flag_no_inline,0) Init(0) Optimization
1809 Enable inlining of function declared \"inline\", disabling disables all inlining.
1811 finline-small-functions
1812 Common Var(flag_inline_small_functions) Optimization
1813 Integrate functions into their callers when code size is known not to grow.
1815 finline-functions
1816 Common Var(flag_inline_functions) Optimization
1817 Integrate functions not declared \"inline\" into their callers when profitable.
1819 finline-functions-called-once
1820 Common Var(flag_inline_functions_called_once) Optimization
1821 Integrate functions only required by their single caller.
1823 finline-limit-
1824 Common RejectNegative Joined Alias(finline-limit=)
1826 finline-limit=
1827 Common RejectNegative Joined UInteger
1828 -finline-limit=<number> Limit the size of inlined functions to <number>.
1830 finline-atomics
1831 Common Var(flag_inline_atomics) Init(1) Optimization
1832 Inline __atomic operations when a lock free instruction sequence is available.
1834 fcf-protection
1835 Common RejectNegative Alias(fcf-protection=,full)
1837 fcf-protection=
1838 Common Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE)
1839 -fcf-protection=[full|branch|return|none|check] Instrument functions with checks to verify jump/call/return control-flow transfer
1840 instructions have valid targets.
1842 Enum
1843 Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs)
1845 EnumValue
1846 Enum(cf_protection_level) String(full) Value(CF_FULL)
1848 EnumValue
1849 Enum(cf_protection_level) String(branch) Value(CF_BRANCH)
1851 EnumValue
1852 Enum(cf_protection_level) String(return) Value(CF_RETURN)
1854 EnumValue
1855 Enum(cf_protection_level) String(check) Value(CF_CHECK)
1857 EnumValue
1858 Enum(cf_protection_level) String(none) Value(CF_NONE)
1860 finstrument-functions
1861 Common Var(flag_instrument_function_entry_exit)
1862 Instrument function entry and exit with profiling calls.
1864 finstrument-functions-exclude-function-list=
1865 Common RejectNegative Joined
1866 -finstrument-functions-exclude-function-list=name,...   Do not instrument listed functions.
1868 finstrument-functions-exclude-file-list=
1869 Common RejectNegative Joined
1870 -finstrument-functions-exclude-file-list=filename,...   Do not instrument functions listed in files.
1872 fipa-cp
1873 Common Var(flag_ipa_cp) Optimization
1874 Perform interprocedural constant propagation.
1876 fipa-cp-clone
1877 Common Var(flag_ipa_cp_clone) Optimization
1878 Perform cloning to make Interprocedural constant propagation stronger.
1880 fipa-cp-alignment
1881 Common Ignore
1882 Does nothing.  Preserved for backward compatibility.
1884 fipa-bit-cp
1885 Common Var(flag_ipa_bit_cp) Optimization
1886 Perform interprocedural bitwise constant propagation.
1888 fipa-modref
1889 Common Var(flag_ipa_modref) Optimization
1890 Perform interprocedural modref analysis.
1892 fipa-profile
1893 Common Var(flag_ipa_profile) Init(0) Optimization
1894 Perform interprocedural profile propagation.
1896 fipa-pta
1897 Common Var(flag_ipa_pta) Init(0) Optimization
1898 Perform interprocedural points-to analysis.
1900 fipa-pure-const
1901 Common Var(flag_ipa_pure_const) Init(0) Optimization
1902 Discover pure and const functions.
1904 fipa-icf
1905 Common Var(flag_ipa_icf) Optimization
1906 Perform Identical Code Folding for functions and read-only variables.
1908 fipa-icf-functions
1909 Common Var(flag_ipa_icf_functions) Optimization
1910 Perform Identical Code Folding for functions.
1912 fipa-icf-variables
1913 Common Var(flag_ipa_icf_variables) Optimization
1914 Perform Identical Code Folding for variables.
1916 fipa-reference
1917 Common Var(flag_ipa_reference) Init(0) Optimization
1918 Discover read-only and non addressable static variables.
1920 fipa-reference-addressable
1921 Common Var(flag_ipa_reference_addressable) Init(0) Optimization
1922 Discover read-only, write-only and non-addressable static variables.
1924 fipa-stack-alignment
1925 Common Var(flag_ipa_stack_alignment) Init(1) Optimization
1926 Reduce stack alignment on call sites if possible.
1928 fipa-matrix-reorg
1929 Common Ignore
1930 Does nothing. Preserved for backward compatibility.
1932 fipa-struct-reorg
1933 Common Ignore
1934 Does nothing. Preserved for backward compatibility.
1936 fipa-vrp
1937 Common Var(flag_ipa_vrp) Optimization
1938 Perform IPA Value Range Propagation.
1940 fira-algorithm=
1941 Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
1942 -fira-algorithm=[CB|priority]   Set the used IRA algorithm.
1944 Enum
1945 Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1947 EnumValue
1948 Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1950 EnumValue
1951 Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1953 fira-region=
1954 Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_ONE) Optimization
1955 -fira-region=[one|all|mixed]    Set regions for IRA.
1957 Enum
1958 Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1960 EnumValue
1961 Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1963 EnumValue
1964 Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1966 EnumValue
1967 Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1969 fira-hoist-pressure
1970 Common Var(flag_ira_hoist_pressure) Init(1) Optimization
1971 Use IRA based register pressure calculation
1972 in RTL hoist optimizations.
1974 fira-loop-pressure
1975 Common Var(flag_ira_loop_pressure) Optimization
1976 Use IRA based register pressure calculation
1977 in RTL loop optimizations.
1979 fira-share-save-slots
1980 Common Var(flag_ira_share_save_slots) Init(1) Optimization
1981 Share slots for saving different hard registers.
1983 fira-share-spill-slots
1984 Common Var(flag_ira_share_spill_slots) Init(1) Optimization
1985 Share stack slots for spilled pseudo-registers.
1987 fira-verbose=
1988 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
1989 -fira-verbose=<number>  Control IRA's level of diagnostic messages.
1991 fivopts
1992 Common Var(flag_ivopts) Init(1) Optimization
1993 Optimize induction variables on trees.
1995 fjump-tables
1996 Common Var(flag_jump_tables) Init(1) Optimization
1997 Use jump tables for sufficiently large switch statements.
1999 fbit-tests
2000 Common Var(flag_bit_tests) Init(1) Optimization
2001 Use bit tests for sufficiently large switch statements.
2003 fkeep-inline-functions
2004 Common Var(flag_keep_inline_functions)
2005 Generate code for functions even if they are fully inlined.
2007 fkeep-static-functions
2008 Common Var(flag_keep_static_functions)
2009 Generate code for static functions even if they are never called.
2011 fkeep-static-consts
2012 Common Var(flag_keep_static_consts) Init(1)
2013 Emit static const variables even if they are not used.
2015 fleading-underscore
2016 Common Var(flag_leading_underscore) Init(-1)
2017 Give external symbols a leading underscore.
2019 floop-optimize
2020 Common Ignore
2021 Does nothing.  Preserved for backward compatibility.
2023 flra-remat
2024 Common Var(flag_lra_remat) Optimization
2025 Do CFG-sensitive rematerialization in LRA.
2027 flto
2028 Common
2029 Enable link-time optimization.
2031 flto=
2032 Common RejectNegative Joined Var(flag_lto)
2033 Link-time optimization with number of parallel jobs or jobserver.
2035 Enum
2036 Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
2038 EnumValue
2039 Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
2041 EnumValue
2042 Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
2044 EnumValue
2045 Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
2047 EnumValue
2048 Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
2050 EnumValue
2051 Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
2053 flto-partition=
2054 Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
2055 Specify the algorithm to partition symbols and vars at linktime.
2057 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
2058 flto-compression-level=
2059 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 19)
2060 -flto-compression-level=<number>        Use zlib/zstd compression level <number> for IL.
2062 flto-odr-type-merging
2063 Common Ignore
2064 Does nothing.  Preserved for backward compatibility.
2066 flto-report
2067 Common Var(flag_lto_report) Init(0)
2068 Report various link-time optimization statistics.
2070 flto-report-wpa
2071 Common Var(flag_lto_report_wpa) Init(0)
2072 Report various link-time optimization statistics for WPA only.
2074 fmath-errno
2075 Common Var(flag_errno_math) Init(1) Optimization SetByCombined
2076 Set errno after built-in math functions.
2078 fmax-errors=
2079 Common Joined RejectNegative UInteger Var(flag_max_errors)
2080 -fmax-errors=<number>   Maximum number of errors to report.
2082 fmem-report
2083 Common Var(mem_report)
2084 Report on permanent memory allocation.
2086 fmem-report-wpa
2087 Common Var(mem_report_wpa)
2088 Report on permanent memory allocation in WPA only.
2090 ; This will attempt to merge constant section constants, if 1 only
2091 ; string constants and constants from constant pool, if 2 also constant
2092 ; variables.
2093 fmerge-all-constants
2094 Common Var(flag_merge_constants,2) Init(1)
2095 Attempt to merge identical constants and constant variables.
2097 fmerge-constants
2098 Common Var(flag_merge_constants,1)
2099 Attempt to merge identical constants across compilation units.
2101 fmerge-debug-strings
2102 Common Var(flag_merge_debug_strings) Init(1)
2103 Attempt to merge identical debug strings across compilation units.
2105 fmessage-length=
2106 Common RejectNegative Joined UInteger
2107 -fmessage-length=<number>       Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping.
2109 fmodulo-sched
2110 Common Var(flag_modulo_sched) Optimization
2111 Perform SMS based modulo scheduling before the first scheduling pass.
2113 fmodulo-sched-allow-regmoves
2114 Common Var(flag_modulo_sched_allow_regmoves) Optimization
2115 Perform SMS based modulo scheduling with register moves allowed.
2117 fmove-loop-invariants
2118 Common Var(flag_move_loop_invariants) Optimization
2119 Move loop invariant computations out of loops.
2121 fmove-loop-stores
2122 Common Var(flag_move_loop_stores) Optimization
2123 Move stores out of loops.
2125 fdce
2126 Common Var(flag_dce) Init(1) Optimization
2127 Use the RTL dead code elimination pass.
2129 fdse
2130 Common Var(flag_dse) Init(0) Optimization
2131 Use the RTL dead store elimination pass.
2133 freschedule-modulo-scheduled-loops
2134 Common Var(flag_resched_modulo_sched) Optimization
2135 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
2137 fnon-call-exceptions
2138 Common Var(flag_non_call_exceptions) Optimization
2139 Support synchronous non-call exceptions.
2141 foffload=
2142 Driver Joined MissingArgError(targets missing after %qs)
2144 foffload-options=
2145 Common Driver Joined MissingArgError(options or targets=options missing after %qs)
2146 -foffload-options=<targets>=<options>   Specify options for the offloading targets.
2148 foffload-abi=
2149 Common Joined RejectNegative Enum(offload_abi)
2150 -foffload-abi=[lp64|ilp32]      Set the ABI to use in an offload compiler.
2152 Enum
2153 Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
2155 EnumValue
2156 Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
2158 EnumValue
2159 Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
2161 fomit-frame-pointer
2162 Common Var(flag_omit_frame_pointer) Optimization
2163 When possible do not generate stack frames.
2165 fopt-info
2166 Common Var(flag_opt_info) Optimization
2167 Enable all optimization info dumps on stderr.
2169 fopt-info-
2170 Common Joined RejectNegative Var(common_deferred_options) Defer
2171 -fopt-info[-<type>=filename]    Dump compiler optimization details.
2173 fsave-optimization-record
2174 Common Var(flag_save_optimization_record) Optimization
2175 Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
2177 foptimize-register-move
2178 Common Ignore
2179 Does nothing. Preserved for backward compatibility.
2181 foptimize-sibling-calls
2182 Common Var(flag_optimize_sibling_calls) Optimization
2183 Optimize sibling and tail recursive calls.
2185 fpartial-inlining
2186 Common Var(flag_partial_inlining) Optimization
2187 Perform partial inlining.
2189 fpre-ipa-mem-report
2190 Common Var(pre_ipa_mem_report)
2191 Report on memory allocation before interprocedural optimization.
2193 fpost-ipa-mem-report
2194 Common Var(post_ipa_mem_report)
2195 Report on memory allocation before interprocedural optimization.
2197 fpack-struct
2198 Common Var(flag_pack_struct) Optimization
2199 Pack structure members together without holes.
2201 fpack-struct=
2202 Common RejectNegative Joined UInteger Optimization
2203 -fpack-struct=<number>  Set initial maximum structure member alignment.
2205 fpcc-struct-return
2206 Common Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
2207 Return small aggregates in memory, not registers.
2209 fpeel-loops
2210 Common Var(flag_peel_loops) Optimization
2211 Perform loop peeling.
2213 fpeephole
2214 Common Var(flag_no_peephole,0) Optimization
2215 Enable machine specific peephole optimizations.
2217 fpeephole2
2218 Common Var(flag_peephole2) Optimization
2219 Enable an RTL peephole pass before sched2.
2221 fPIC
2222 Common Var(flag_pic,2) Negative(fPIE) Init(-1)
2223 Generate position-independent code if possible (large mode).
2225 fPIE
2226 Common Var(flag_pie,2) Negative(fpic) Init(-1)
2227 Generate position-independent code for executables if possible (large mode).
2229 fpic
2230 Common Var(flag_pic,1) Negative(fpie) Init(-1)
2231 Generate position-independent code if possible (small mode).
2233 fpie
2234 Common Var(flag_pie,1) Negative(fPIC) Init(-1)
2235 Generate position-independent code for executables if possible (small mode).
2237 fplt
2238 Common Var(flag_plt) Init(1) Optimization
2239 Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
2241 fplugin=
2242 Common Joined RejectNegative Var(common_deferred_options) Defer
2243 Specify a plugin to load.
2245 fplugin-arg-
2246 Common Joined RejectNegative Var(common_deferred_options) Defer
2247 -fplugin-arg-<name>-<key>[=<value>]     Specify argument <key>=<value> for plugin <name>.
2249 fpredictive-commoning
2250 Common Var(flag_predictive_commoning) Optimization
2251 Run predictive commoning optimization.
2253 fprefetch-loop-arrays
2254 Common Var(flag_prefetch_loop_arrays) Init(-1) Optimization
2255 Generate prefetch instructions, if available, for arrays in loops.
2257 fprofile
2258 Common Var(profile_flag)
2259 Enable basic program profiling code.
2261 fprofile-abs-path
2262 Common Var(profile_abs_path_flag)
2263 Generate absolute source path names for gcov.
2265 fprofile-arcs
2266 Common Var(profile_arc_flag)
2267 Insert arc-based program profiling code.
2269 fprofile-dir=
2270 Common Joined RejectNegative Var(profile_data_prefix)
2271 Set the top-level directory for storing the profile data.
2272 The default is 'pwd'.
2274 fprofile-note=
2275 Common Joined RejectNegative Var(profile_note_location)
2276 Select the name for storing the profile note file.
2278 fprofile-correction
2279 Common Var(flag_profile_correction)
2280 Enable correction of flow inconsistent profile data input.
2282 fprofile-update=
2283 Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE)
2284 -fprofile-update=[single|atomic|prefer-atomic]  Set the profile update method.
2286 fprofile-filter-files=
2287 Common Joined RejectNegative Var(flag_profile_filter_files)
2288 Instrument only functions from files whose name matches any of the regular expressions (separated by semi-colons).
2290 fprofile-exclude-files=
2291 Common Joined RejectNegative Var(flag_profile_exclude_files)
2292 Instrument only functions from files whose name does not match any of the regular expressions (separated by semi-colons).
2294 Enum
2295 Name(profile_reproducibility) Type(enum profile_reproducibility) UnknownError(unknown profile reproducibility method %qs)
2297 EnumValue
2298 Enum(profile_reproducibility) String(serial) Value(PROFILE_REPRODUCIBILITY_SERIAL)
2300 EnumValue
2301 Enum(profile_reproducibility) String(parallel-runs) Value(PROFILE_REPRODUCIBILITY_PARALLEL_RUNS)
2303 EnumValue
2304 Enum(profile_reproducibility) String(multithreaded) Value(PROFILE_REPRODUCIBILITY_MULTITHREADED)
2306 fprofile-reproducible=
2307 Common Joined RejectNegative Var(flag_profile_reproducible) Enum(profile_reproducibility) Init(PROFILE_REPRODUCIBILITY_SERIAL)
2308 -fprofile-reproducible=[serial|parallel-runs|multithreaded]     Control level of reproducibility of profile gathered by -fprofile-generate.
2310 Enum
2311 Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs)
2313 EnumValue
2314 Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE)
2316 EnumValue
2317 Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC)
2319 EnumValue
2320 Enum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC)
2322 fprofile-prefix-path=
2323 Common Joined RejectNegative Var(profile_prefix_path)
2324 Remove prefix from absolute path before mangling name for -fprofile-generate= and -fprofile-use=.
2326 fprofile-generate
2327 Common
2328 Enable common options for generating profile info for profile feedback directed optimizations.
2330 fprofile-generate=
2331 Common Joined RejectNegative
2332 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
2334 fprofile-info-section
2335 Common RejectNegative
2336 Register the profile information in the .gcov_info section instead of using a constructor/destructor.
2338 fprofile-info-section=
2339 Common Joined RejectNegative Var(profile_info_section)
2340 Register the profile information in the specified section instead of using a constructor/destructor.
2342 fprofile-partial-training
2343 Common Var(flag_profile_partial_training) Optimization
2344 Do not assume that functions never executed during the train run are cold.
2346 fprofile-use
2347 Common Var(flag_profile_use)
2348 Enable common options for performing profile feedback directed optimizations.
2350 fprofile-use=
2351 Common Joined RejectNegative
2352 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
2354 fprofile-values
2355 Common Var(flag_profile_values)
2356 Insert code to profile values of expressions.
2358 fprofile-report
2359 Common Var(profile_report)
2360 Report on consistency of profile.
2362 fprofile-reorder-functions
2363 Common Var(flag_profile_reorder_functions) Optimization
2364 Enable function reordering that improves code placement.
2366 fpatchable-function-entry=
2367 Common Var(flag_patchable_function_entry) Joined Optimization
2368 Insert NOP instructions at each function entry.
2370 frandom-seed
2371 Common Var(common_deferred_options) Defer
2373 frandom-seed=
2374 Common Joined RejectNegative Var(common_deferred_options) Defer
2375 -frandom-seed=<string>  Make compile reproducible using <string>.
2377 ; This switch causes the command line that was used to create an
2378 ; object file to be recorded into the object file.  The exact format
2379 ; of this recording is target and binary file format dependent.
2380 ; It is related to the -fverbose-asm switch, but that switch only
2381 ; records information in the assembler output file as comments, so
2382 ; they never reach the object file.
2383 frecord-gcc-switches
2384 Common Var(flag_record_gcc_switches)
2385 Record gcc command line switches in the object file.
2387 freg-struct-return
2388 Common Var(flag_pcc_struct_return,0) Optimization
2389 Return small aggregates in registers.
2391 fregmove
2392 Common Ignore
2393 Does nothing. Preserved for backward compatibility.
2395 flifetime-dse
2396 Common Var(flag_lifetime_dse,2) Init(2) Optimization
2397 Tell DSE that the storage for a C++ object is dead when the constructor
2398 starts and when the destructor finishes.
2400 flifetime-dse=
2401 Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
2403 flive-patching
2404 Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
2406 flive-patching=
2407 Common Joined RejectNegative Enum(live_patching_level) Var(flag_live_patching) Init(LIVE_PATCHING_NONE) Optimization
2408 -flive-patching=[inline-only-static|inline-clone]       Control IPA
2409 optimizations to provide a safe compilation for live-patching.  At the same
2410 time, provides multiple-level control on the enabled IPA optimizations.
2412 Enum
2413 Name(live_patching_level) Type(enum live_patching_level) UnknownError(unknown Live-Patching Level %qs)
2415 EnumValue
2416 Enum(live_patching_level) String(inline-only-static) Value(LIVE_PATCHING_INLINE_ONLY_STATIC)
2418 EnumValue
2419 Enum(live_patching_level) String(inline-clone) Value(LIVE_PATCHING_INLINE_CLONE)
2421 fallocation-dce
2422 Common Var(flag_allocation_dce) Init(1) Optimization
2423 Tell DCE to remove unused C++ allocations.
2425 flive-range-shrinkage
2426 Common Var(flag_live_range_shrinkage) Init(0) Optimization
2427 Relief of register pressure through live range shrinkage.
2429 frename-registers
2430 Common Var(flag_rename_registers) Optimization EnabledBy(funroll-loops)
2431 Perform a register renaming optimization pass.
2433 fschedule-fusion
2434 Common Var(flag_schedule_fusion) Init(2) Optimization
2435 Perform a target dependent instruction fusion optimization pass.
2437 freorder-blocks
2438 Common Var(flag_reorder_blocks) Optimization
2439 Reorder basic blocks to improve code placement.
2441 freorder-blocks-algorithm=
2442 Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
2443 -freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
2445 Enum
2446 Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
2448 EnumValue
2449 Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
2451 EnumValue
2452 Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
2454 freorder-blocks-and-partition
2455 Common Var(flag_reorder_blocks_and_partition) Optimization
2456 Reorder basic blocks and partition into hot and cold sections.
2458 freorder-functions
2459 Common Var(flag_reorder_functions) Optimization
2460 Reorder functions to improve code placement.
2462 frerun-cse-after-loop
2463 Common Var(flag_rerun_cse_after_loop) Optimization
2464 Add a common subexpression elimination pass after loop optimizations.
2466 frerun-loop-opt
2467 Common Ignore
2468 Does nothing.  Preserved for backward compatibility.
2470 frounding-math
2471 Common Var(flag_rounding_math) Optimization SetByCombined
2472 Disable optimizations that assume default FP rounding behavior.
2474 fsched-interblock
2475 Common Var(flag_schedule_interblock) Init(1) Optimization
2476 Enable scheduling across basic blocks.
2478 fsched-pressure
2479 Common Var(flag_sched_pressure) Init(0) Optimization
2480 Enable register pressure sensitive insn scheduling.
2482 fsched-spec
2483 Common Var(flag_schedule_speculative) Init(1) Optimization
2484 Allow speculative motion of non-loads.
2486 fsched-spec-load
2487 Common Var(flag_schedule_speculative_load) Optimization
2488 Allow speculative motion of some loads.
2490 fsched-spec-load-dangerous
2491 Common Var(flag_schedule_speculative_load_dangerous) Optimization
2492 Allow speculative motion of more loads.
2494 fsched-verbose=
2495 Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
2496 -fsched-verbose=<number>        Set the verbosity level of the scheduler.
2498 fsched2-use-superblocks
2499 Common Var(flag_sched2_use_superblocks) Optimization
2500 If scheduling post reload, do superblock scheduling.
2502 fsched2-use-traces
2503 Common Ignore
2504 Does nothing.  Preserved for backward compatibility.
2506 fschedule-insns
2507 Common Var(flag_schedule_insns) Optimization
2508 Reschedule instructions before register allocation.
2510 fschedule-insns2
2511 Common Var(flag_schedule_insns_after_reload) Optimization
2512 Reschedule instructions after register allocation.
2514 ; This flag should be on when a target implements non-trivial
2515 ; scheduling hooks, maybe saving some information for its own sake.
2516 ; On IA64, for example, this is used for correct bundling.
2517 fselective-scheduling
2518 Common Var(flag_selective_scheduling) Optimization
2519 Schedule instructions using selective scheduling algorithm.
2521 fselective-scheduling2
2522 Common Var(flag_selective_scheduling2) Optimization
2523 Run selective scheduling after reload.
2525 fself-test=
2526 Common Undocumented Joined Var(flag_self_test)
2527 Run self-tests, using the given path to locate test files.
2529 fsel-sched-pipelining
2530 Common Var(flag_sel_sched_pipelining) Init(0) Optimization
2531 Perform software pipelining of inner loops during selective scheduling.
2533 fsel-sched-pipelining-outer-loops
2534 Common Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
2535 Perform software pipelining of outer loops during selective scheduling.
2537 fsel-sched-reschedule-pipelined
2538 Common Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
2539 Reschedule pipelined regions without pipelining.
2541 fsemantic-interposition
2542 Common Var(flag_semantic_interposition) Init(1)
2543 Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
2545 ; sched_stalled_insns means that insns can be moved prematurely from the queue
2546 ; of stalled insns into the ready list.
2547 fsched-stalled-insns
2548 Common Var(flag_sched_stalled_insns) Optimization UInteger
2549 Allow premature scheduling of queued insns.
2551 fsched-stalled-insns=
2552 Common RejectNegative Joined UInteger Optimization
2553 -fsched-stalled-insns=<number>  Set number of queued insns that can be prematurely scheduled.
2555 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
2556 ; be examined for a dependency on a stalled insn that is candidate for
2557 ; premature removal from the queue of stalled insns into the ready list (has
2558 ; an effect only if the flag 'sched_stalled_insns' is set).
2559 fsched-stalled-insns-dep
2560 Common Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
2561 Set dependence distance checking in premature scheduling of queued insns.
2563 fsched-stalled-insns-dep=
2564 Common RejectNegative Joined UInteger Optimization
2565 -fsched-stalled-insns-dep=<number>      Set dependence distance checking in premature scheduling of queued insns.
2567 fsched-group-heuristic
2568 Common Var(flag_sched_group_heuristic) Init(1) Optimization
2569 Enable the group heuristic in the scheduler.
2571 fsched-critical-path-heuristic
2572 Common Var(flag_sched_critical_path_heuristic) Init(1) Optimization
2573 Enable the critical path heuristic in the scheduler.
2575 fsched-spec-insn-heuristic
2576 Common Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
2577 Enable the speculative instruction heuristic in the scheduler.
2579 fsched-rank-heuristic
2580 Common Var(flag_sched_rank_heuristic) Init(1) Optimization
2581 Enable the rank heuristic in the scheduler.
2583 fsched-last-insn-heuristic
2584 Common Var(flag_sched_last_insn_heuristic) Init(1) Optimization
2585 Enable the last instruction heuristic in the scheduler.
2587 fsched-dep-count-heuristic
2588 Common Var(flag_sched_dep_count_heuristic) Init(1) Optimization
2589 Enable the dependent count heuristic in the scheduler.
2591 fsection-anchors
2592 Common Var(flag_section_anchors) Optimization
2593 Access data in the same section from shared anchor points.
2595 fsee
2596 Common Ignore
2597 Does nothing.  Preserved for backward compatibility.
2599 fzee
2600 Common Ignore
2601 Does nothing.  Preserved for backward compatibility.
2603 free
2604 Common Var(flag_ree) Init(0) Optimization
2605 Turn on Redundant Extensions Elimination pass.
2607 fshow-column
2608 Common Var(flag_show_column) Init(1)
2609 Show column numbers in diagnostics, when available.  Default on.
2611 fshrink-wrap
2612 Common Var(flag_shrink_wrap) Optimization
2613 Emit function prologues only before parts of the function that need it,
2614 rather than at the top of the function.
2616 fshrink-wrap-separate
2617 Common Var(flag_shrink_wrap_separate) Init(1) Optimization
2618 Shrink-wrap parts of the prologue and epilogue separately.
2620 fsignaling-nans
2621 Common Var(flag_signaling_nans) Optimization SetByCombined
2622 Disable optimizations observable by IEEE signaling NaNs.
2624 fsigned-zeros
2625 Common Var(flag_signed_zeros) Init(1) Optimization SetByCombined
2626 Disable floating point optimizations that ignore the IEEE signedness of zero.
2628 fsingle-precision-constant
2629 Common Var(flag_single_precision_constant) Optimization
2630 Convert floating point constants to single precision constants.
2632 fsplit-ivs-in-unroller
2633 Common Var(flag_split_ivs_in_unroller) Init(1) Optimization
2634 Split lifetimes of induction variables when loops are unrolled.
2636 fsplit-stack
2637 Common Var(flag_split_stack) Init(-1)
2638 Generate discontiguous stack frames.
2640 fsplit-wide-types
2641 Common Var(flag_split_wide_types) Optimization
2642 Split wide types into independent registers.
2644 fsplit-wide-types-early
2645 Common Var(flag_split_wide_types_early) Optimization
2646 Split wide types into independent registers earlier.
2648 fssa-backprop
2649 Common Var(flag_ssa_backprop) Init(1) Optimization
2650 Enable backward propagation of use properties at the SSA level.
2652 fssa-phiopt
2653 Common Var(flag_ssa_phiopt) Optimization
2654 Optimize conditional patterns using SSA PHI nodes.
2656 fstdarg-opt
2657 Common Var(flag_stdarg_opt) Init(1) Optimization
2658 Optimize amount of stdarg registers saved to stack at start of function.
2660 fvariable-expansion-in-unroller
2661 Common Var(flag_variable_expansion_in_unroller) Optimization
2662 Apply variable expansion when loops are unrolled.
2664 fstack-check=
2665 Common RejectNegative Joined Optimization
2666 -fstack-check=[no|generic|specific]     Insert stack checking code into the program.
2668 fstack-check
2669 Common Alias(fstack-check=, specific, no)
2670 Insert stack checking code into the program.  Same as -fstack-check=specific.
2672 fstack-clash-protection
2673 Common Var(flag_stack_clash_protection) Optimization
2674 Insert code to probe each page of stack space as it is allocated to protect
2675 from stack-clash style attacks.
2677 fstack-limit
2678 Common Var(common_deferred_options) Defer
2680 fstack-limit-register=
2681 Common RejectNegative Joined Var(common_deferred_options) Defer
2682 -fstack-limit-register=<register>       Trap if the stack goes past <register>.
2684 fstack-limit-symbol=
2685 Common RejectNegative Joined Var(common_deferred_options) Defer
2686 -fstack-limit-symbol=<name>     Trap if the stack goes past symbol <name>.
2688 fstack-protector
2689 Common Var(flag_stack_protect, 1) Init(-1) Optimization
2690 Use propolice as a stack protection method.
2692 fstack-protector-all
2693 Common RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
2694 Use a stack protection method for every function.
2696 fstack-protector-strong
2697 Common RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
2698 Use a smart stack protection method for certain functions.
2700 fstack-protector-explicit
2701 Common RejectNegative Var(flag_stack_protect, 4) Optimization
2702 Use stack protection method only for functions with the stack_protect attribute.
2704 fstack-usage
2705 Common RejectNegative Var(flag_stack_usage)
2706 Output stack usage information on a per-function basis.
2708 fstrength-reduce
2709 Common Ignore
2710 Does nothing.  Preserved for backward compatibility.
2712 ; Nonzero if we should do (language-dependent) alias analysis.
2713 ; Typically, this analysis will assume that expressions of certain
2714 ; types do not alias expressions of certain other types.  Only used
2715 ; if alias analysis (in general) is enabled.
2716 fstrict-aliasing
2717 Common Var(flag_strict_aliasing) Optimization
2718 Assume strict aliasing rules apply.
2720 fstrict-overflow
2721 Common
2722 Treat signed overflow as undefined.  Negated as -fwrapv -fwrapv-pointer.
2724 fsync-libcalls
2725 Common Var(flag_sync_libcalls) Init(1)
2726 Implement __atomic operations via libcalls to legacy __sync functions.
2728 fsyntax-only
2729 Common Var(flag_syntax_only)
2730 Check for syntax errors, then stop.
2732 ftest-coverage
2733 Common Var(flag_test_coverage)
2734 Create data files needed by \"gcov\".
2736 fthread-jumps
2737 Common Var(flag_thread_jumps) Optimization
2738 Perform jump threading optimizations.
2740 ftime-report
2741 Common Var(time_report)
2742 Report the time taken by each compiler pass.
2744 ftime-report-details
2745 Common Var(time_report_details)
2746 Record times taken by sub-phases separately.
2748 ftls-model=
2749 Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
2750 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model.
2752 Enum
2753 Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
2755 EnumValue
2756 Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
2758 EnumValue
2759 Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
2761 EnumValue
2762 Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
2764 EnumValue
2765 Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
2767 ftoplevel-reorder
2768 Common Var(flag_toplevel_reorder) Init(2) Optimization
2769 Reorder top level functions, variables, and asms.
2771 ftracer
2772 Common Var(flag_tracer) Optimization
2773 Perform superblock formation via tail duplication.
2775 ftrampolines
2776 Common Var(flag_trampolines) Init(0)
2777 For targets that normally need trampolines for nested functions, always
2778 generate them instead of using descriptors.
2780 ; Zero means that floating-point math operations cannot generate a
2781 ; (user-visible) trap.  This is the case, for example, in nonstop
2782 ; IEEE 754 arithmetic.
2783 ftrapping-math
2784 Common Var(flag_trapping_math) Init(1) Optimization SetByCombined
2785 Assume floating-point operations can trap.
2787 ftrapv
2788 Common Var(flag_trapv) Optimization
2789 Trap for signed overflow in addition, subtraction and multiplication.
2791 ftree-ccp
2792 Common Var(flag_tree_ccp) Optimization
2793 Enable SSA-CCP optimization on trees.
2795 ftree-bit-ccp
2796 Common Var(flag_tree_bit_ccp) Optimization
2797 Enable SSA-BIT-CCP optimization on trees.
2799 ftree-store-ccp
2800 Common Ignore
2801 Does nothing.  Preserved for backward compatibility.
2803 ftree-ch
2804 Common Var(flag_tree_ch) Optimization
2805 Enable loop header copying on trees.
2807 ftree-coalesce-inlined-vars
2808 Common Ignore RejectNegative
2809 Does nothing.  Preserved for backward compatibility.
2811 ftree-coalesce-vars
2812 Common Var(flag_tree_coalesce_vars) Optimization
2813 Enable SSA coalescing of user variables.
2815 ftree-copyrename
2816 Common Ignore
2817 Does nothing.  Preserved for backward compatibility.
2819 ftree-copy-prop
2820 Common Var(flag_tree_copy_prop) Optimization
2821 Enable copy propagation on trees.
2823 ftree-store-copy-prop
2824 Common Ignore
2825 Does nothing.  Preserved for backward compatibility.
2827 ftree-cselim
2828 Common Var(flag_tree_cselim) Optimization
2829 Transform condition stores into unconditional ones.
2831 ftree-switch-conversion
2832 Common Var(flag_tree_switch_conversion) Optimization
2833 Perform conversions of switch initializations.
2835 ftree-dce
2836 Common Var(flag_tree_dce) Optimization
2837 Enable SSA dead code elimination optimization on trees.
2839 ftree-dominator-opts
2840 Common Var(flag_tree_dom) Optimization
2841 Enable dominator optimizations.
2843 ftree-tail-merge
2844 Common Var(flag_tree_tail_merge) Optimization
2845 Enable tail merging on trees.
2847 ftree-dse
2848 Common Var(flag_tree_dse) Optimization
2849 Enable dead store elimination.
2851 ftree-forwprop
2852 Common Var(flag_tree_forwprop) Init(1) Optimization
2853 Enable forward propagation on trees.
2855 ftree-fre
2856 Common Var(flag_tree_fre) Optimization
2857 Enable Full Redundancy Elimination (FRE) on trees.
2859 foptimize-strlen
2860 Common Var(flag_optimize_strlen) Optimization
2861 Enable string length optimizations on trees.
2863 fisolate-erroneous-paths-dereference
2864 Common Var(flag_isolate_erroneous_paths_dereference) Optimization
2865 Detect paths that trigger erroneous or undefined behavior due to
2866 dereferencing a null pointer.  Isolate those paths from the main control
2867 flow and turn the statement with erroneous or undefined behavior into a trap.
2869 fisolate-erroneous-paths-attribute
2870 Common Var(flag_isolate_erroneous_paths_attribute) Optimization
2871 Detect paths that trigger erroneous or undefined behavior due to a null value
2872 being used in a way forbidden by a returns_nonnull or nonnull
2873 attribute.  Isolate those paths from the main control flow and turn the
2874 statement with erroneous or undefined behavior into a trap.
2876 ftree-loop-distribution
2877 Common Var(flag_tree_loop_distribution) Optimization
2878 Enable loop distribution on trees.
2880 ftree-loop-distribute-patterns
2881 Common Var(flag_tree_loop_distribute_patterns) Optimization
2882 Enable loop distribution for patterns transformed into a library call.
2884 ftree-loop-im
2885 Common Var(flag_tree_loop_im) Init(1) Optimization
2886 Enable loop invariant motion on trees.
2888 ftree-loop-linear
2889 Common Alias(floop-nest-optimize)
2890 Enable loop nest transforms.  Same as -floop-nest-optimize.
2892 ftree-loop-ivcanon
2893 Common Var(flag_tree_loop_ivcanon) Init(1) Optimization
2894 Create canonical induction variables in loops.
2896 ftree-loop-optimize
2897 Common Var(flag_tree_loop_optimize) Init(1) Optimization
2898 Enable loop optimizations on tree level.
2900 ftree-parallelize-loops=
2901 Common Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
2902 -ftree-parallelize-loops=<number>       Enable automatic parallelization of loops.
2904 ftree-phiprop
2905 Common Var(flag_tree_phiprop) Init(1) Optimization
2906 Enable hoisting loads from conditional pointers.
2908 ftree-pre
2909 Common Var(flag_tree_pre) Optimization
2910 Enable SSA-PRE optimization on trees.
2912 ftree-partial-pre
2913 Common Var(flag_tree_partial_pre) Optimization
2914 In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
2916 ftree-pta
2917 Common Var(flag_tree_pta) Optimization
2918 Perform function-local points-to analysis on trees.
2920 ftree-reassoc
2921 Common Var(flag_tree_reassoc) Init(1) Optimization
2922 Enable reassociation on tree level.
2924 ftree-salias
2925 Common Ignore
2926 Does nothing.  Preserved for backward compatibility.
2928 ftree-sink
2929 Common Var(flag_tree_sink) Optimization
2930 Enable SSA code sinking on trees.
2932 ftree-slsr
2933 Common Var(flag_tree_slsr) Optimization
2934 Perform straight-line strength reduction.
2936 ftree-sra
2937 Common Var(flag_tree_sra) Optimization
2938 Perform scalar replacement of aggregates.
2940 ftree-ter
2941 Common Var(flag_tree_ter) Optimization
2942 Replace temporary expressions in the SSA->normal pass.
2944 ftree-lrs
2945 Common Var(flag_tree_live_range_split) Optimization
2946 Perform live range splitting during the SSA->normal pass.
2948 ftree-vrp
2949 Common Var(flag_tree_vrp) Init(0) Optimization
2950 Perform Value Range Propagation on trees.
2952 fsplit-paths
2953 Common Var(flag_split_paths) Init(0) Optimization
2954 Split paths leading to loop backedges.
2956 funconstrained-commons
2957 Common Var(flag_unconstrained_commons) Optimization
2958 Assume common declarations may be overridden with ones with a larger
2959 trailing array.
2961 funit-at-a-time
2962 Common Var(flag_unit_at_a_time) Init(1)
2963 Compile whole compilation unit at a time.
2965 funroll-loops
2966 Common Var(flag_unroll_loops) Optimization EnabledBy(funroll-all-loops)
2967 Perform loop unrolling when iteration count is known.
2969 funroll-all-loops
2970 Common Var(flag_unroll_all_loops) Optimization
2971 Perform loop unrolling for all loops.
2973 funroll-completely-grow-size
2974 Undocumented Var(flag_cunroll_grow_size) Optimization
2975 ; Internal undocumented flag, allow size growth during complete unrolling
2977 ; Nonzero means that loop optimizer may assume that the induction variables
2978 ; that control loops do not overflow and that the loops with nontrivial
2979 ; exit condition are not infinite
2980 funsafe-loop-optimizations
2981 Common Ignore
2982 Does nothing.  Preserved for backward compatibility.
2984 fassociative-math
2985 Common Var(flag_associative_math) SetByCombined Optimization
2986 Allow optimization for floating-point arithmetic which may change the
2987 result of the operation due to rounding.
2989 freciprocal-math
2990 Common Var(flag_reciprocal_math) SetByCombined Optimization
2991 Same as -fassociative-math for expressions which include division.
2993 ; Nonzero means that unsafe floating-point math optimizations are allowed
2994 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
2995 ; are allowed to assume that their arguments and results are "normal"
2996 ; (e.g., nonnegative for SQRT).
2997 funsafe-math-optimizations
2998 Common Var(flag_unsafe_math_optimizations) Optimization SetByCombined
2999 Allow math optimizations that may violate IEEE or ISO standards.
3001 funswitch-loops
3002 Common Var(flag_unswitch_loops) Optimization
3003 Perform loop unswitching.
3005 fsplit-loops
3006 Common Var(flag_split_loops) Optimization
3007 Perform loop splitting.
3009 fversion-loops-for-strides
3010 Common Var(flag_version_loops_for_strides) Optimization
3011 Version loops based on whether indices have a stride of one.
3013 funwind-tables
3014 Common Var(flag_unwind_tables) Optimization
3015 Just generate unwind tables for exception handling.
3017 fuse-ld=bfd
3018 Common Driver Negative(fuse-ld=gold)
3019 Use the bfd linker instead of the default linker.
3021 fuse-ld=gold
3022 Common Driver Negative(fuse-ld=bfd)
3023 Use the gold linker instead of the default linker.
3025 fuse-ld=lld
3026 Common Driver Negative(fuse-ld=lld)
3027 Use the lld LLVM linker instead of the default linker.
3029 fuse-linker-plugin
3030 Common Undocumented Var(flag_use_linker_plugin)
3032 ; Positive if we should track variables, negative if we should run
3033 ; the var-tracking pass only to discard debug annotations, zero if
3034 ; we're not to run it.
3035 fvar-tracking
3036 Common Var(flag_var_tracking) PerFunction EnabledBy(fvar-tracking-uninit)
3037 Perform variable tracking.
3039 ; Positive if we should track variables at assignments, negative if
3040 ; we should run the var-tracking pass only to discard debug
3041 ; annotations.
3042 fvar-tracking-assignments
3043 Common Var(flag_var_tracking_assignments) PerFunction
3044 Perform variable tracking by annotating assignments.
3046 ; Nonzero if we should toggle flag_var_tracking_assignments after
3047 ; processing options and computing its default.  */
3048 fvar-tracking-assignments-toggle
3049 Common Var(flag_var_tracking_assignments_toggle) PerFunction
3050 Toggle -fvar-tracking-assignments.
3052 ; Positive if we should track uninitialized variables, negative if
3053 ; we should run the var-tracking pass only to discard debug
3054 ; annotations.
3055 fvar-tracking-uninit
3056 Common Var(flag_var_tracking_uninit) PerFunction
3057 Perform variable tracking and also tag variables that are uninitialized.
3059 ; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
3060 ftree-vectorize
3061 Common Var(flag_tree_vectorize) Optimization
3062 Enable vectorization on trees.
3064 ftree-vectorizer-verbose=
3065 Common Joined RejectNegative Ignore
3066 Does nothing.  Preserved for backward compatibility.
3068 ftree-loop-vectorize
3069 Common Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
3070 Enable loop vectorization on trees.
3072 ftree-slp-vectorize
3073 Common Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
3074 Enable basic block vectorization (SLP) on trees.
3076 fvect-cost-model=
3077 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
3078 -fvect-cost-model=[unlimited|dynamic|cheap|very-cheap]  Specifies the cost model for vectorization.
3080 fsimd-cost-model=
3081 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
3082 -fsimd-cost-model=[unlimited|dynamic|cheap|very-cheap]  Specifies the vectorization cost model for code marked with a simd directive.
3084 Enum
3085 Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
3087 EnumValue
3088 Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
3090 EnumValue
3091 Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
3093 EnumValue
3094 Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
3096 EnumValue
3097 Enum(vect_cost_model) String(very-cheap) Value(VECT_COST_MODEL_VERY_CHEAP)
3099 fvect-cost-model
3100 Common Alias(fvect-cost-model=,dynamic,unlimited)
3101 Enables the dynamic vectorizer cost model.  Preserved for backward compatibility.
3103 ftree-vect-loop-version
3104 Common Ignore
3105 Does nothing. Preserved for backward compatibility.
3107 ftree-scev-cprop
3108 Common Var(flag_tree_scev_cprop) Init(1) Optimization
3109 Enable copy propagation of scalar-evolution information.
3111 ftrivial-auto-var-init=
3112 Common Joined RejectNegative Enum(auto_init_type) Var(flag_auto_var_init) Init(AUTO_INIT_UNINITIALIZED) Optimization
3113 -ftrivial-auto-var-init=[uninitialized|pattern|zero]    Add initializations to automatic variables.
3115 Enum
3116 Name(auto_init_type) Type(enum auto_init_type) UnknownError(unrecognized automatic variable initialization type %qs)
3118 EnumValue
3119 Enum(auto_init_type) String(uninitialized) Value(AUTO_INIT_UNINITIALIZED)
3121 EnumValue
3122 Enum(auto_init_type) String(pattern) Value(AUTO_INIT_PATTERN)
3124 EnumValue
3125 Enum(auto_init_type) String(zero) Value(AUTO_INIT_ZERO)
3127 ; -fverbose-asm causes extra commentary information to be produced in
3128 ; the generated assembly code (to make it more readable).  This option
3129 ; is generally only of use to those who actually need to read the
3130 ; generated assembly code (perhaps while debugging the compiler itself).
3131 ; -fno-verbose-asm, the default, causes the extra information
3132 ; to not be added and is useful when comparing two assembler files.
3133 fverbose-asm
3134 Common Var(flag_verbose_asm)
3135 Add extra commentary to assembler output.
3137 fvisibility=
3138 Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
3139 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility.
3141 Enum
3142 Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
3144 EnumValue
3145 Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
3147 EnumValue
3148 Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
3150 EnumValue
3151 Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
3153 EnumValue
3154 Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
3156 fvtable-verify=
3157 Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
3158 Validate vtable pointers before using them.
3160 Enum
3161 Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
3163 EnumValue
3164 Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
3166 EnumValue
3167 Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
3169 EnumValue
3170 Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
3172 fvtv-counts
3173 Common Var(flag_vtv_counts)
3174 Output vtable verification counters.
3176 fvtv-debug
3177 Common Var(flag_vtv_debug)
3178 Output vtable verification pointer sets information.
3180 fvpt
3181 Common Var(flag_value_profile_transformations) Optimization
3182 Use expression value profiles in optimizations.
3184 fweb
3185 Common Var(flag_web) Optimization EnabledBy(funroll-loops)
3186 Construct webs and split unrelated uses of single variable.
3188 ftree-builtin-call-dce
3189 Common Var(flag_tree_builtin_call_dce) Init(0) Optimization
3190 Enable conditional dead code elimination for builtin calls.
3192 fwhole-program
3193 Common Var(flag_whole_program) Init(0)
3194 Perform whole program optimizations.
3196 fwrapv-pointer
3197 Common Var(flag_wrapv_pointer) Optimization
3198 Assume pointer overflow wraps around.
3200 fwrapv
3201 Common Var(flag_wrapv) Optimization
3202 Assume signed arithmetic overflow wraps around.
3204 fzero-initialized-in-bss
3205 Common Var(flag_zero_initialized_in_bss) Init(1)
3206 Put zero initialized data in the bss section.
3208 fzero-call-used-regs=
3209 Common RejectNegative Joined
3210 Clear call-used registers upon function return.
3213 Common Driver RejectNegative JoinedOrMissing
3214 Generate debug information in default format.
3216 gas-loc-support
3217 Common Driver Var(dwarf2out_as_loc_support)
3218 Assume assembler support for (DWARF2+) .loc directives.
3220 gas-locview-support
3221 Common Driver Var(dwarf2out_as_locview_support)
3222 Assume assembler support for view in (DWARF2+) .loc directives.
3224 gcoff
3225 Common Driver WarnRemoved
3226 Does nothing.  Preserved for backward compatibility.
3228 gcoff1
3229 Common Driver WarnRemoved
3230 Does nothing.  Preserved for backward compatibility.
3232 gcoff2
3233 Common Driver WarnRemoved
3234 Does nothing.  Preserved for backward compatibility.
3236 gcoff3
3237 Common Driver WarnRemoved
3238 Does nothing.  Preserved for backward compatibility.
3240 gcolumn-info
3241 Common Driver Var(debug_column_info,1) Init(1)
3242 Record DW_AT_decl_column and DW_AT_call_column in DWARF.
3244 ; The CTF generation process feeds off DWARF dies.  This option implicitly
3245 ; updates the debug_info_level to DINFO_LEVEL_NORMAL.
3246 gctf
3247 Common Driver RejectNegative JoinedOrMissing
3248 Generate CTF debug information at default level.
3250 gbtf
3251 Common Driver RejectNegative JoinedOrMissing
3252 Generate BTF debug information at default level.
3254 gdwarf
3255 Common Driver JoinedOrMissing Negative(gdwarf-)
3256 Generate debug information in default version of DWARF format.
3258 gdwarf-
3259 Common Driver Joined UInteger Var(dwarf_version) Init(5) Negative(gstabs)
3260 Generate debug information in DWARF v2 (or later) format.
3262 gdwarf32
3263 Common Driver Var(dwarf_offset_size,4) Init(4) RejectNegative
3264 Use 32-bit DWARF format when emitting DWARF debug information.
3266 gdwarf64
3267 Common Driver Var(dwarf_offset_size,8) RejectNegative
3268 Use 64-bit DWARF format when emitting DWARF debug information.
3270 ggdb
3271 Common Driver JoinedOrMissing
3272 Generate debug information in default extended format.
3274 ginline-points
3275 Common Driver Var(debug_inline_points)
3276 Generate extended entry point information for inlined functions.
3278 ginternal-reset-location-views
3279 Common Driver Var(debug_internal_reset_location_views) Init(2)
3280 Compute locview reset points based on insn length estimates.
3282 gno-
3283 RejectNegative Joined Undocumented
3284 ; Catch the gno- prefix, so it doesn't backtrack to g<level>.
3286 gno-pubnames
3287 Common Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
3288 Don't generate DWARF pubnames and pubtypes sections.
3290 gpubnames
3291 Common Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
3292 Generate DWARF pubnames and pubtypes sections.
3294 ggnu-pubnames
3295 Common Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
3296 Generate DWARF pubnames and pubtypes sections with GNU extensions.
3298 grecord-gcc-switches
3299 Common Driver Var(dwarf_record_gcc_switches) Init(1)
3300 Record gcc command line switches in DWARF DW_AT_producer.
3302 gsplit-dwarf
3303 Common Driver Var(dwarf_split_debug_info) Init(0)
3304 Generate debug information in separate .dwo files.
3306 gstabs
3307 Common Driver JoinedOrMissing Negative(gstabs+)
3308 Generate debug information in STABS format.
3310 gstabs+
3311 Common Driver JoinedOrMissing Negative(gvms)
3312 Generate debug information in extended STABS format.
3314 gstatement-frontiers
3315 Common Driver Var(debug_nonbind_markers_p) PerFunction
3316 Emit progressive recommended breakpoint locations.
3318 gstrict-dwarf
3319 Common Driver Var(dwarf_strict) Init(0)
3320 Don't emit DWARF additions beyond selected version.
3322 gdescribe-dies
3323 Common Driver Var(flag_describe_dies) Init(0)
3324 Add description attributes to some DWARF DIEs that have no name attribute.
3326 gtoggle
3327 Common Driver Var(flag_gtoggle)
3328 Toggle debug information generation.
3330 gvariable-location-views
3331 Common Driver Var(debug_variable_location_views, 1)
3332 Augment variable location lists with progressive views.
3334 gvariable-location-views=incompat5
3335 Common Driver RejectNegative Var(debug_variable_location_views, -1) Init(2)
3337 gvms
3338 Common Driver JoinedOrMissing Negative(gxcoff)
3339 Generate debug information in VMS format.
3341 gxcoff
3342 Common Driver JoinedOrMissing Negative(gxcoff+)
3343 Generate debug information in XCOFF format.
3345 gxcoff+
3346 Common Driver JoinedOrMissing Negative(gdwarf)
3347 Generate debug information in extended XCOFF format.
3349 Enum
3350 Name(compressed_debug_sections) Type(int)
3352 ; Since -gz= is completely handled in specs, the values aren't used and we
3353 ; assign arbitrary constants.
3354 EnumValue
3355 Enum(compressed_debug_sections) String(none) Value(0)
3357 EnumValue
3358 Enum(compressed_debug_sections) String(zlib) Value(1)
3360 EnumValue
3361 Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
3364 Common Driver
3365 Generate compressed debug sections.
3368 Common Driver RejectNegative Joined Enum(compressed_debug_sections)
3369 -gz=<format>    Generate compressed debug sections in format <format>.
3372 Driver Joined Separate
3374 iplugindir=
3375 Common Joined Var(plugindir_string) Init(0)
3376 -iplugindir=<dir>       Set <dir> to be the default plugin directory.
3378 imultiarch
3379 Common Joined Separate RejectDriver Var(imultiarch) Init(0)
3380 -imultiarch <dir>       Set <dir> to be the multiarch include subdirectory.
3383 Driver Joined Separate
3386 Driver
3388 no-canonical-prefixes
3389 Driver
3391 nodefaultlibs
3392 Driver
3394 nostartfiles
3395 Driver
3397 nolibc
3398 Driver
3400 nostdlib
3401 Driver
3404 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
3405 -o <file>       Place output into <file>.
3408 Common Var(profile_flag)
3409 Enable function profiling.
3411 pass-exit-codes
3412 Driver Var(pass_exit_codes)
3414 pedantic
3415 Common Alias(Wpedantic)
3417 pedantic-errors
3418 Common Var(flag_pedantic_errors)
3419 Like -pedantic but issue them as errors.
3422 Driver
3424 pipe
3425 Driver Var(use_pipes)
3427 print-file-name=
3428 Driver JoinedOrMissing Var(print_file_name)
3430 print-libgcc-file-name
3431 Driver
3433 print-multi-directory
3434 Driver Var(print_multi_directory)
3436 print-multi-lib
3437 Driver Var(print_multi_lib)
3439 print-multi-os-directory
3440 Driver Var(print_multi_os_directory)
3442 print-multiarch
3443 Driver Var(print_multiarch)
3445 print-prog-name=
3446 Driver JoinedOrMissing Var(print_prog_name)
3448 print-search-dirs
3449 Driver Var(print_search_dirs)
3451 print-sysroot
3452 Driver Var(print_sysroot)
3454 print-sysroot-headers-suffix
3455 Driver Var(print_sysroot_headers_suffix)
3457 quiet
3458 Common Var(quiet_flag) RejectDriver
3459 Do not display functions compiled or elapsed time.
3462 Driver
3465 Driver
3467 save-temps
3468 Driver
3470 save-temps=
3471 Driver Joined
3474 Driver
3476 time
3477 Driver Var(report_times)
3479 time=
3480 Driver JoinedOrMissing
3483 Driver Joined Separate
3485 undef
3486 Driver
3487 ; C option, but driver must not handle as "-u ndef".
3490 Common Driver Var(verbose_flag)
3491 Enable verbose output.
3493 version
3494 Common Var(version_flag) RejectDriver
3495 Display the compiler's version.
3498 Common Var(inhibit_warnings)
3499 Suppress warnings.
3501 wrapper
3502 Driver Separate Var(wrapper_string)
3505 Driver Joined Separate
3507 shared
3508 Driver RejectNegative Negative(static-pie)
3509 Create a shared library.
3511 shared-libgcc
3512 Driver
3514 specs
3515 Driver Separate Alias(specs=)
3517 specs=
3518 Driver Joined
3520 static
3521 Driver
3523 static-libgcc
3524 Driver
3526 static-libgfortran
3527 Driver
3528 ; Documented for Fortran, but always accepted by driver.
3530 static-libstdc++
3531 Driver
3533 static-libgo
3534 Driver
3535 ; Documented for Go, but always accepted by driver.
3537 static-libasan
3538 Driver
3540 static-libhwasan
3541 Driver
3543 static-libtsan
3544 Driver
3546 static-liblsan
3547 Driver
3549 static-libubsan
3550 Driver
3552 symbolic
3553 Driver
3555 no-pie
3556 Driver RejectNegative Negative(shared)
3557 Don't create a dynamically linked position independent executable.
3560 Driver RejectNegative Negative(no-pie)
3561 Create a dynamically linked position independent executable.
3563 static-pie
3564 Driver RejectNegative Negative(pie)
3565 Create a static position independent executable.
3568 Driver Joined Separate
3570 fipa-ra
3571 Common Var(flag_ipa_ra) Optimization
3572 Use caller save register across calls if possible.
3574 ; This comment is to ensure we retain the blank line above.