Don't warn when alignment of global common data exceeds maximum alignment.
[official-gcc.git] / gcc / common.opt
blobed8ab5fbe13d4009f1d8be4adbe1f19ef457daf1
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 ; Language specific warning pass for unused results.
63 Variable
64 bool flag_warn_unused_result = false
66 ; Nonzero if we should write GIMPLE bytecode for link-time optimization.
67 Variable
68 int flag_generate_lto
70 ; Nonzero if we should write GIMPLE bytecode for offload compilation.
71 Variable
72 int flag_generate_offload = 0
74 ; Nonzero means we should be saving declaration info into a .X file.
75 Variable
76 int flag_gen_aux_info = 0
78 ; Nonzero if we are compiling code for a shared library, zero for
79 ; executable.
80 Variable
81 int flag_shlib
83 ; These two are really VEC(char_p,heap) *.
85 Variable
86 void *flag_instrument_functions_exclude_functions
88 Variable
89 void *flag_instrument_functions_exclude_files
91 ; Generic structs (e.g. templates not explicitly specialized)
92 ; may not have a compilation unit associated with them, and so
93 ; may need to be treated differently from ordinary structs.
95 ; Structs only handled by reference (indirectly), will also usually
96 ; not need as much debugging information.
98 Variable
99 enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
101 Variable
102 enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
104 ; True if we should exit after parsing options.
105 Variable
106 bool exit_after_options
108 ; Type(s) of debugging information we are producing (if any).  See
109 ; flag-types.h for the definitions of the different possible types of
110 ; debugging information.
111 Variable
112 uint32_t write_symbols = NO_DEBUG
114 ; Level of debugging information we are producing.  See flag-types.h
115 ; for the definitions of the different possible levels.
116 Variable
117 enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
119 ; Nonzero means use GNU-only extensions in the generated symbolic
120 ; debugging information.  Currently, this only has an effect when
121 ; write_symbols is set to DBX_DEBUG or XCOFF_DEBUG.
122 Variable
123 bool use_gnu_debug_info_extensions
125 ; Level of CTF debugging information we are producing.  See flag-types.h
126 ; for the definitions of the different possible levels.
127 Variable
128 enum ctf_debug_info_levels ctf_debug_info_level = CTFINFO_LEVEL_NONE
130 ; Original value of maximum field alignment in bytes, specified via
131 ; -fpack-struct=<value>.
132 Variable
133 unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
135 ; Type of stack check.
136 Variable
137 enum stack_check_type flag_stack_check = NO_STACK_CHECK
139 ; True if stack usage information needs to be computed.
140 Variable
141 bool flag_stack_usage_info = false
143 ; -dA causes debug commentary information to be produced in
144 ; the generated assembly code (to make it more readable).  This option
145 ; is generally only of use to those who actually need to read the
146 ; generated assembly code (perhaps while debugging the compiler itself).
147 ; Currently, this switch is only used by dwarf2out.c; however, it is intended
148 ; to be a catchall for printing debug information in the assembler file.
149 Variable
150 int flag_debug_asm
152 ; Balance between GNAT encodings and standard DWARF to emit.
153 Variable
154 enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT
156 ; -dP causes the rtl to be emitted as a comment in assembly.
157 Variable
158 int flag_dump_rtl_in_asm
160 ; Whether -da was passed (used only in handle_common_deferred_options).
161 Variable
162 bool flag_dump_all_passed
164 ; Other flags saying which kinds of debugging dump have been requested.
166 Variable
167 int rtl_dump_and_exit
169 Variable
170 int flag_print_asm_name
172 ; Name of top-level original source file (what was input to cpp).
173 ; This comes from the #-command at the beginning of the actual input.
174 ; If there isn't any there, then this is the cc1 input file name.
175 Variable
176 const char *main_input_filename
178 ; Pointer to base name in main_input_filename, with directories and a
179 ; single final extension removed, and the length of this base
180 ; name.
182 Variable
183 const char *main_input_basename
185 Variable
186 int main_input_baselength
188 ; The base name used for auxiliary output files.
189 ; dump_base_name minus dump_base_ext.
191 Variable
192 const char *aux_base_name
194 ; Which options have been printed by --help.
195 Variable
196 char *help_printed
198 ; Which enums have been printed by --help.  0 = not printed, no
199 ; relevant options seen, 1 = relevant option seen, not yet printed, 2
200 ; = printed.
201 Variable
202 char *help_enum_printed
204 ; The number of columns for --help output.
205 Variable
206 unsigned int help_columns
208 ; Whether this options structure has been through finish_options
209 Variable
210 bool flag_opts_finished
212 ; What the sanitizer should instrument
213 Variable
214 unsigned int flag_sanitize
216 ; What sanitizers should recover from errors
217 Variable
218 unsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT | SANITIZE_KERNEL_ADDRESS | SANITIZE_KERNEL_HWADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN)
220 ; What the coverage sanitizers should instrument
221 Variable
222 unsigned int flag_sanitize_coverage
224 ; Flag whether a prefix has been added to dump_base_name
225 Variable
226 bool dump_base_name_prefixed = false
228 ; What subset of registers should be zeroed on function return
229 Variable
230 unsigned int flag_zero_call_used_regs
233 Driver
235 -assemble
236 Driver Alias(S)
238 -compile
239 Driver Alias(c)
241 -completion=
242 Common Driver Joined Undocumented
243 Provide bash completion for options starting with provided string.
245 -coverage
246 Driver Alias(coverage)
248 -debug
249 Common Alias(g)
251 -dump
252 Common Separate Alias(d)
254 -dump=
255 Common Joined Alias(d)
257 -dumpbase
258 Driver Common Separate Alias(dumpbase)
260 -dumpbase-ext
261 Driver Common Separate Alias(dumpbase-ext)
263 -dumpdir
264 Driver Common Separate Alias(dumpdir)
266 -entry
267 Driver Separate Alias(e)
269 -entry=
270 Driver Joined Alias(e)
272 -extra-warnings
273 Common Warning Alias(Wextra)
275 -for-assembler
276 Driver Separate Alias(Xassembler)
278 -for-assembler=
279 Driver JoinedOrMissing Alias(Xassembler)
281 -for-linker
282 Driver Separate Alias(Xlinker)
284 -for-linker=
285 Driver JoinedOrMissing Alias(Xlinker)
287 -force-link
288 Driver Separate Alias(u)
290 -force-link=
291 Driver Joined Alias(u)
293 -help
294 Common Driver Var(help_flag)
295 Display this information.
297 -help=
298 Common Driver Joined
299 --help=<class>  Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params.
301 -language
302 Driver Separate Alias(x)
304 -language=
305 Driver Joined Alias(x)
307 -library-directory
308 Driver Separate Alias(L)
310 -library-directory=
311 Driver Joined Alias(L)
313 -no-canonical-prefixes
314 Driver Alias(no-canonical-prefixes)
316 -no-standard-libraries
317 Driver Alias(nostdlib)
319 -no-sysroot-suffix
320 Driver Var(no_sysroot_suffix)
322 -no-warnings
323 Common Alias(w)
325 -optimize
326 Common Alias(O)
328 -output
329 Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
331 -output=
332 Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
334 -pass-exit-codes
335 Driver Alias(pass-exit-codes)
337 -pedantic
338 Common Alias(Wpedantic)
340 -pedantic-errors
341 Common Alias(pedantic-errors)
343 -pie
344 Driver Alias(pie)
346 -static-pie
347 Driver Alias(static-pie)
349 -pipe
350 Driver Alias(pipe)
352 -prefix
353 Driver Separate Alias(B)
355 -prefix=
356 Driver JoinedOrMissing Alias(B)
358 -preprocess
359 Driver Alias(E)
361 -print-file-name
362 Driver Separate Alias(print-file-name=)
364 -print-file-name=
365 Driver JoinedOrMissing Alias(print-file-name=)
367 -print-libgcc-file-name
368 Driver Alias(print-libgcc-file-name)
370 -print-multi-directory
371 Driver Alias(print-multi-directory)
373 -print-multi-lib
374 Driver Alias(print-multi-lib)
376 -print-multi-os-directory
377 Driver Alias(print-multi-os-directory)
379 -print-multiarch
380 Driver Alias(print-multiarch)
382 -print-prog-name
383 Driver Separate Alias(print-prog-name=)
385 -print-prog-name=
386 Driver JoinedOrMissing Alias(print-prog-name=)
388 -print-search-dirs
389 Driver Alias(print-search-dirs)
391 -print-sysroot
392 Driver Alias(print-sysroot)
394 -print-sysroot-headers-suffix
395 Driver Alias(print-sysroot-headers-suffix)
397 -profile
398 Common Alias(p)
400 -save-temps
401 Driver Alias(save-temps)
403 -shared
404 Driver Alias(shared)
406 -specs
407 Driver Separate Alias(specs=)
409 -specs=
410 Driver Joined Alias(specs=)
412 -static
413 Driver Alias(static)
415 -symbolic
416 Driver Alias(symbolic)
418 -target-help
419 Common Driver
420 Alias for --help=target.
422 -time
423 Driver Alias(time)
425 -verbose
426 Driver Alias(v)
428 ;; The driver used to convert options such as --help into forms such
429 ;; as -fhelp; the following four entries are for compatibility with
430 ;; any direct uses of those (undocumented) -f forms
431 fhelp
432 Common Driver Alias(-help)
434 fhelp=
435 Common Driver Joined Alias(-help=)
437 ftarget-help
438 Common Driver Alias(-target-help)
440 fversion
441 Common Driver Alias(-version)
443 -sysroot
444 Driver Separate Alias(-sysroot=)
446 -sysroot=
447 Driver JoinedOrMissing
449 -version
450 Common Driver
453 Driver Joined Separate
456 Driver
459 Driver Joined Separate
462 Driver
465 Common JoinedOrMissing Optimization
466 -O<number>      Set optimization level to <number>.
469 Common Optimization
470 Optimize for space rather than speed.
472 Ofast
473 Common Optimization
474 Optimize for speed disregarding exact standards compliance.
477 Common Optimization
478 Optimize for debugging experience rather than speed or size.
481 Driver
484 Driver Negative(Qy)
487 Driver Negative(Qn)
490 Driver Joined Separate
493 Driver
496 Driver Joined Separate
498 Tbss
499 Driver Separate
501 Tbss=
502 Driver Joined
504 Tdata
505 Driver Separate
507 Tdata=
508 Driver Joined
510 Ttext
511 Driver Separate
513 Ttext=
514 Driver Joined
517 Common RejectNegative Warning Alias(Wextra)
518 This switch is deprecated; use -Wextra instead.
521 Driver JoinedOrMissing RejectNegative
524 Driver JoinedOrMissing RejectNegative
527 Driver JoinedOrMissing RejectNegative
529 Waggregate-return
530 Common Var(warn_aggregate_return) Warning
531 Warn about returning structures, unions or arrays.
533 Waggressive-loop-optimizations
534 Common Var(warn_aggressive_loop_optimizations) Init(1) Warning
535 Warn if a loop with constant number of iterations triggers undefined behavior.
537 Warray-bounds
538 Common Var(warn_array_bounds) Warning
539 Warn if an array is accessed out of bounds.
541 Warray-bounds=
542 Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2)
543 Warn if an array is accessed out of bounds.
545 Wattributes
546 Common Var(warn_attributes) Init(1) Warning
547 Warn about inappropriate attribute usage.
549 Wattribute-alias
550 Common Alias(Wattribute_alias=, 1, 0) Warning
551 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
553 Wattribute-alias=
554 Common Joined RejectNegative UInteger Var(warn_attribute_alias) Init(1) Warning IntegerRange(0, 2)
555 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
557 Wcannot-profile
558 Common Var(warn_cannot_profile) Init(1) Warning
559 Warn when profiling instrumentation was requested, but could not be applied to
560 a certain function.
562 Wcast-align
563 Common Var(warn_cast_align) Warning
564 Warn about pointer casts which increase alignment.
566 Wcast-align=strict
567 Common Var(warn_cast_align,2) Warning
568 Warn about pointer casts which increase alignment.
570 Wcpp
571 Common Var(warn_cpp) Init(1) Warning
572 Warn when a #warning directive is encountered.
574 Wattribute-warning
575 Common Var(warn_attribute_warning) Init(1) Warning
576 Warn about uses of __attribute__((warning)) declarations.
578 Wdeprecated
579 Common Var(warn_deprecated) Init(1) Warning
580 Warn if a deprecated compiler feature, class, method, or field is used.
582 Wdeprecated-declarations
583 Common Var(warn_deprecated_decl) Init(1) Warning
584 Warn about uses of __attribute__((deprecated)) declarations.
586 Wdisabled-optimization
587 Common Var(warn_disabled_optimization) Warning
588 Warn when an optimization pass is disabled.
590 Werror
591 Common Var(warnings_are_errors)
592 Treat all warnings as errors.
594 Werror=
595 Common Joined
596 Treat specified warning as error.
598 Wextra
599 Common Var(extra_warnings) Warning
600 Print extra (possibly unwanted) warnings.
602 Wfatal-errors
603 Common Var(flag_fatal_errors)
604 Exit on the first error occurred.
606 Wframe-larger-than=
607 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_frame_larger_than_size) Init(HOST_WIDE_INT_MAX)
608 -Wframe-larger-than=<byte-size> Warn if a function's stack frame requires in excess of <byte-size>.
610 Wno-frame-larger-than
611 Common Alias(Wframe-larger-than=,18446744073709551615EiB,none) Warning
612 Disable -Wframe-larger-than= warning.  Equivalent to -Wframe-larger-than=<SIZE_MAX> or larger.
614 Wfree-nonheap-object
615 Common Var(warn_free_nonheap_object) Init(1) Warning
616 Warn when attempting to free a non-heap object.
618 Whsa
619 Common Ignore Warning
620 Does nothing.  Preserved for backward compatibility.
622 Wimplicit-fallthrough
623 Common Alias(Wimplicit-fallthrough=,3,0) Warning
625 Wimplicit-fallthrough=
626 Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5)
627 Warn when a switch case falls through.
629 Winline
630 Common Var(warn_inline) Warning Optimization
631 Warn when an inlined function cannot be inlined.
633 Winvalid-memory-model
634 Common Var(warn_invalid_memory_model) Init(1) Warning
635 Warn when an atomic memory model parameter is known to be outside the valid range.
637 Wlarger-than-
638 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
640 Wlarger-than=
641 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_larger_than_size) Init(HOST_WIDE_INT_MAX)
642 -Wlarger-than=<byte-size>       Warn if an object's size exceeds <byte-size>.
644 Wno-larger-than
645 Common Alias(Wlarger-than=,18446744073709551615EiB,none) Warning
646 Disable -Wlarger-than= warning.  Equivalent to -Wlarger-than=<SIZE_MAX> or larger.
648 Wnonnull-compare
649 Var(warn_nonnull_compare) Warning
650 Warn if comparing pointer parameter with nonnull attribute with NULL.
652 Wnull-dereference
653 Common Var(warn_null_dereference) Warning
654 Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
656 Wunsafe-loop-optimizations
657 Common Ignore Warning
658 Does nothing. Preserved for backward compatibility.
660 Wmissing-noreturn
661 Common Warning Alias(Wsuggest-attribute=noreturn)
663 Wodr
664 Common Var(warn_odr_violations) Init(1) Warning
665 Warn about some C++ One Definition Rule violations during link time optimization.
667 Woverflow
668 Common Var(warn_overflow) Init(1) Warning
669 Warn about overflow in arithmetic expressions.
671 Wlto-type-mismatch
672 Common Var(warn_lto_type_mismatch) Init(1) Warning
673 During link time optimization warn about mismatched types of global declarations.
675 Wpacked
676 Common Var(warn_packed) Warning
677 Warn when the packed attribute has no effect on struct layout.
679 Wpadded
680 Common Var(warn_padded) Warning
681 Warn when padding is required to align structure members.
683 Wpedantic
684 Common Var(pedantic) Init(0) Warning
685 Issue warnings needed for strict compliance to the standard.
687 Wreturn-local-addr
688 Common Var(warn_return_local_addr) Init(1) Warning
689 Warn about returning a pointer/reference to a local or temporary variable.
691 Wshadow
692 Common Var(warn_shadow) Warning
693 Warn when one variable shadows another.  Same as -Wshadow=global.
695 Wshadow=global
696 Common Warning Alias(Wshadow)
697 Warn when one variable shadows another (globally).
699 Wshadow=local
700 Common Var(warn_shadow_local) Warning EnabledBy(Wshadow)
701 Warn when one local variable shadows another local variable or parameter.
703 Wshadow-local
704 Common Warning Undocumented Alias(Wshadow=local)
706 Wshadow=compatible-local
707 Common Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local)
708 Warn when one local variable shadows another local variable or parameter of compatible type.
710 Wshadow-compatible-local
711 Common Warning Undocumented Alias(Wshadow=compatible-local)
713 Wstack-protector
714 Common Var(warn_stack_protect) Warning
715 Warn when not issuing stack smashing protection for some reason.
717 Wstack-usage=
718 Common Joined RejectNegative Host_Wide_Int ByteSize Var(warn_stack_usage) Warning Init(HOST_WIDE_INT_MAX)
719 -Wstack-usage=<byte-size>       Warn if stack usage might exceed <byte-size>.
721 Wno-stack-usage
722 Common Alias(Wstack-usage=,18446744073709551615EiB,none) Warning
723 Disable Wstack-usage= warning.  Equivalent to Wstack-usage=<SIZE_MAX> or larger.
725 Wstrict-aliasing
726 Common Warning
727 Warn about code which might break strict aliasing rules.
729 Wstrict-aliasing=
730 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
731 Warn about code which might break strict aliasing rules.
733 Wstrict-overflow
734 Common Warning
735 Warn about optimizations that assume that signed overflow is undefined.
737 Wstrict-overflow=
738 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
739 Warn about optimizations that assume that signed overflow is undefined.
741 Wsuggest-attribute=cold
742 Common Var(warn_suggest_attribute_cold) Warning
743 Warn about functions which might be candidates for __attribute__((cold)).
745 Wsuggest-attribute=const
746 Common Var(warn_suggest_attribute_const) Warning
747 Warn about functions which might be candidates for __attribute__((const)).
749 Wsuggest-attribute=pure
750 Common Var(warn_suggest_attribute_pure) Warning
751 Warn about functions which might be candidates for __attribute__((pure)).
753 Wsuggest-attribute=noreturn
754 Common Var(warn_suggest_attribute_noreturn) Warning
755 Warn about functions which might be candidates for __attribute__((noreturn)).
757 Wsuggest-attribute=malloc
758 Common Var(warn_suggest_attribute_malloc) Warning
759 Warn about functions which might be candidates for __attribute__((malloc)).
761 Wsuggest-final-types
762 Common Var(warn_suggest_final_types) Warning
763 Warn about C++ polymorphic types where adding final keyword would improve code quality.
765 Wsuggest-final-methods
766 Common Var(warn_suggest_final_methods) Warning
767 Warn about C++ virtual methods where adding final keyword would improve code quality.
769 Wswitch-unreachable
770 Common Var(warn_switch_unreachable) Warning Init(1)
771 Warn about statements between switch's controlling expression and the first
772 case.
774 Wsystem-headers
775 Common Var(warn_system_headers) Warning
776 Do not suppress warnings from system headers.
778 Wtrampolines
779 Common Var(warn_trampolines) Warning
780 Warn whenever a trampoline is generated.
782 Wtype-limits
783 Common Var(warn_type_limits) Warning EnabledBy(Wextra)
784 Warn if a comparison is always true or always false due to the limited range of the data type.
786 Wuninitialized
787 Common Var(warn_uninitialized) Warning EnabledBy(Wextra)
788 Warn about uninitialized automatic variables.
790 Wmaybe-uninitialized
791 Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
792 Warn about maybe uninitialized automatic variables.
794 Wunreachable-code
795 Common Ignore Warning
796 Does nothing. Preserved for backward compatibility.
798 Wunused
799 Common Var(warn_unused) Init(0) Warning
800 Enable all -Wunused- warnings.
802 Wunused-but-set-parameter
803 Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
804 Warn when a function parameter is only set, otherwise unused.
806 Wunused-but-set-variable
807 Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
808 Warn when a variable is only set, otherwise unused.
810 Wunused-function
811 Common Var(warn_unused_function) Warning EnabledBy(Wunused)
812 Warn when a function is unused.
814 Wunused-label
815 Common Var(warn_unused_label) Warning EnabledBy(Wunused)
816 Warn when a label is unused.
818 Wunused-parameter
819 Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
820 Warn when a function parameter is unused.
822 Wunused-value
823 Common Var(warn_unused_value) Warning EnabledBy(Wunused)
824 Warn when an expression value is unused.
826 Wunused-variable
827 Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
828 Warn when a variable is unused.
830 Wcoverage-mismatch
831 Common Var(warn_coverage_mismatch) Init(1) Warning
832 Warn in case profiles in -fprofile-use do not match.
834 Wcoverage-invalid-line-number
835 Common Var(warn_coverage_invalid_linenum) Init(1) Warning
836 Warn in case a function ends earlier than it begins due to an invalid linenum macros.
838 Wmissing-profile
839 Common Var(warn_missing_profile) Init(1) Warning
840 Warn in case profiles in -fprofile-use do not exist.
842 Wvector-operation-performance
843 Common Var(warn_vector_operation_performance) Warning
844 Warn when a vector operation is compiled outside the SIMD.
846 Wtsan
847 Common Var(warn_tsan) Init(1) Warning
848 Warn about unsupported features in ThreadSanitizer.
850 Xassembler
851 Driver Separate
853 Xlinker
854 Driver Separate
856 Xpreprocessor
857 Driver Separate
860 Driver
862 aux-info
863 Common Separate Var(aux_info_file_name)
864 -aux-info <file>        Emit declaration information into <file>.
866 aux-info=
867 Common Joined Alias(aux-info)
869 coverage
870 Driver
873 Driver
876 Common Joined
877 -d<letters>     Enable dumps from specific passes of the compiler.
879 dumpbase
880 Driver Common Separate Var(dump_base_name)
881 -dumpbase <file>        Set the file basename to be used for dumps.
883 dumpbase-ext
884 Driver Common Separate Var(dump_base_ext)
885 -dumpbase-ext .<ext>    Drop a trailing .<ext> from the dump basename to name auxiliary output files.
887 dumpdir
888 Driver Common Separate Var(dump_dir_name)
889 -dumpdir <dir>  Set the directory name to be used for dumps.
891 dumpmachine
892 Driver
894 dumpspecs
895 Driver
897 dumpversion
898 Driver
900 dumpfullversion
901 Driver
904 Driver Joined Separate
906 ; This option has historically been passed down to the linker by an
907 ; accident of a %{e*} spec, so ensure it continues to be passed down
908 ; as a single option.  The supported option for this purpose is
909 ; -rdynamic.  See PR 47390.
910 export-dynamic
911 Driver Undocumented
913 ; The version of the C++ ABI in use.  The following values are allowed:
915 ; 0: The version of the ABI believed most conformant with the C++ ABI
916 ;    specification.  This ABI may change as bugs are discovered and fixed.
917 ;    Therefore, 0 will not necessarily indicate the same ABI in different
918 ;    versions of G++.
920 ; 1: The version of the ABI first used in G++ 3.2.  No longer selectable.
922 ; 2: The version of the ABI first used in G++ 3.4, and the default
923 ;    until GCC 4.9.
925 ; 3: The version of the ABI that fixes the missing underscore
926 ;    in template non-type arguments of pointer type.
928 ; 4: The version of the ABI that introduces unambiguous mangling of
929 ;    vector types.  First selectable in G++ 4.5.
931 ; 5: The version of the ABI that ignores attribute const/noreturn
932 ;    in function pointer mangling, and corrects mangling of decltype and
933 ;    function parameters used in other parameters and the return type.
934 ;    First selectable in G++ 4.6.
936 ; 6: The version of the ABI that doesn't promote scoped enums to int and
937 ;    changes the mangling of template argument packs, const/static_cast,
938 ;    prefix ++ and --, and a class scope function used as a template
939 ;    argument.
940 ;    First selectable in G++ 4.7.
942 ; 7: The version of the ABI that treats nullptr_t as a builtin type and
943 ;    corrects the mangling of lambdas in default argument scope.
944 ;    First selectable in G++ 4.8.
946 ; 8: The version of the ABI that corrects the substitution behavior of
947 ;    function types with function-cv-qualifiers.
948 ;    First selectable in G++ 4.9 and default in G++ 5.
950 ; 9: The version of the ABI that corrects the alignment of nullptr_t.
951 ;    First selectable and default in G++ 5.2.
953 ; 10: The version of the ABI that mangles attributes that affect type
954 ;     identity, such as ia32 calling convention attributes (stdcall, etc.)
955 ;     Default in G++ 6 (set in c_common_post_options).
957 ; 11: The version of the ABI that corrects mangling of sizeof... expressions
958 ;     and introduces new inheriting constructor handling.
959 ;     Default in G++ 7.
961 ; 12: Corrects the calling convention for classes with only deleted copy/move
962 ;     constructors and changes passing/returning of empty records.
963 ;     Default in G++ 8.1.
965 ; 13: Fixes the accidental change in 12 to the calling convention for classes
966 ;     with deleted copy constructor and trivial move constructor.
967 ;     Default in G++ 8.2.
969 ; 14: Corrects the mangling of nullptr expression.
970 ;     Default in G++ 10.
972 ; 15: Corrects G++ 10 ABI tag regression [PR98481].
973 ;     Available, but not default, in G++ 10.3.
975 ; 16: Changes the mangling of __alignof__ to be distinct from that of alignof.
976 ;     Adds missing 'on' in mangling of operator names in some cases.
977 ;     Default in G++ 11.
979 ; Additional positive integers will be assigned as new versions of
980 ; the ABI become the default version of the ABI.
981 fabi-version=
982 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
983 The version of the C++ ABI in use.
985 faggressive-loop-optimizations
986 Common Var(flag_aggressive_loop_optimizations) Optimization Init(1)
987 Aggressively optimize loops using language constraints.
989 falign-functions
990 Common Var(flag_align_functions) Optimization
991 Align the start of functions.
993 falign-functions=
994 Common RejectNegative Joined Var(str_align_functions) Optimization
996 flimit-function-alignment
997 Common Var(flag_limit_function_alignment) Optimization Init(0)
999 falign-jumps
1000 Common Var(flag_align_jumps) Optimization
1001 Align labels which are only reached by jumping.
1003 falign-jumps=
1004 Common RejectNegative Joined Var(str_align_jumps) Optimization
1006 falign-labels
1007 Common Var(flag_align_labels) Optimization
1008 Align all labels.
1010 falign-labels=
1011 Common RejectNegative Joined Var(str_align_labels) Optimization
1013 falign-loops
1014 Common Var(flag_align_loops) Optimization
1015 Align the start of loops.
1017 falign-loops=
1018 Common RejectNegative Joined Var(str_align_loops) Optimization
1020 fallow-store-data-races
1021 Common Var(flag_store_data_races) Optimization
1022 Allow the compiler to introduce new data races on stores.
1024 fanalyzer
1025 Common Var(flag_analyzer)
1026 Enable static analysis pass.
1028 fargument-alias
1029 Common Ignore
1030 Does nothing. Preserved for backward compatibility.
1032 fargument-noalias
1033 Common Ignore
1034 Does nothing. Preserved for backward compatibility.
1036 fargument-noalias-global
1037 Common Ignore
1038 Does nothing. Preserved for backward compatibility.
1040 fargument-noalias-anything
1041 Common Ignore
1042 Does nothing. Preserved for backward compatibility.
1044 fsanitize=
1045 Common Driver Joined
1046 Select what to sanitize.
1048 fsanitize-coverage=
1049 Common Joined RejectNegative Enum(sanitize_coverage)
1050 Select type of coverage sanitization.
1052 Enum
1053 Name(sanitize_coverage) Type(int)
1055 EnumValue
1056 Enum(sanitize_coverage) String(trace-pc) Value(SANITIZE_COV_TRACE_PC)
1058 EnumValue
1059 Enum(sanitize_coverage) String(trace-cmp) Value(SANITIZE_COV_TRACE_CMP)
1061 fasan-shadow-offset=
1062 Common Joined RejectNegative Var(common_deferred_options) Defer
1063 -fasan-shadow-offset=<number>   Use custom shadow memory offset.
1065 fsanitize-sections=
1066 Common Joined RejectNegative Var(common_deferred_options) Defer
1067 -fsanitize-sections=<sec1,sec2,...>     Sanitize global variables
1068 in user-defined sections.
1070 fsanitize-recover=
1071 Common Joined
1072 After diagnosing undefined behavior attempt to continue execution.
1074 fsanitize-recover
1075 Common
1076 This switch is deprecated; use -fsanitize-recover= instead.
1078 fsanitize-address-use-after-scope
1079 Common Driver Var(flag_sanitize_address_use_after_scope) Init(0)
1081 fsanitize-undefined-trap-on-error
1082 Common Driver Var(flag_sanitize_undefined_trap_on_error) Init(0)
1083 Use trap instead of a library function for undefined behavior sanitization.
1085 fasynchronous-unwind-tables
1086 Common Var(flag_asynchronous_unwind_tables) Optimization
1087 Generate unwind tables that are exact at each instruction boundary.
1089 fauto-inc-dec
1090 Common Var(flag_auto_inc_dec) Init(1) Optimization
1091 Generate auto-inc/dec instructions.
1093 fauto-profile
1094 Common Var(flag_auto_profile)
1095 Use sample profile information for call graph node weights. The default
1096 profile file is fbdata.afdo in 'pwd'.
1098 fauto-profile=
1099 Common Joined RejectNegative Var(auto_profile_file)
1100 Use sample profile information for call graph node weights. The profile
1101 file is specified in the argument.
1103 ; -fcheck-bounds causes gcc to generate array bounds checks.
1104 ; For C, C++ and ObjC: defaults off.
1105 ; For Java: defaults to on.
1106 ; For Fortran: defaults to off.
1107 fbounds-check
1108 Common Var(flag_bounds_check)
1109 Generate code to check bounds before indexing arrays.
1111 fbranch-count-reg
1112 Common Var(flag_branch_on_count_reg) Optimization
1113 Replace add, compare, branch with branch on count register.
1115 fbranch-probabilities
1116 Common Var(flag_branch_probabilities) Optimization
1117 Use profiling information for branch probabilities.
1119 fbranch-target-load-optimize
1120 Common Ignore
1121 Does nothing.  Preserved for backward compatibility.
1123 fbranch-target-load-optimize2
1124 Common Ignore
1125 Does nothing.  Preserved for backward compatibility.
1127 fbtr-bb-exclusive
1128 Common Ignore
1129 Does nothing.  Preserved for backward compatibility.
1131 fcallgraph-info
1132 Common RejectNegative Var(flag_callgraph_info) Init(NO_CALLGRAPH_INFO);
1133 Output callgraph information on a per-file basis.
1135 fcallgraph-info=
1136 Common RejectNegative Joined
1137 Output callgraph information on a per-file basis with decorations.
1139 fcall-saved-
1140 Common Joined RejectNegative Var(common_deferred_options) Defer
1141 -fcall-saved-<register> Mark <register> as being preserved across functions.
1143 fcall-used-
1144 Common Joined RejectNegative Var(common_deferred_options) Defer
1145 -fcall-used-<register>  Mark <register> as being corrupted by function calls.
1147 ; Nonzero for -fcaller-saves: allocate values in regs that need to
1148 ; be saved across function calls, if that produces overall better code.
1149 ; Optional now, so people can test it.
1150 fcaller-saves
1151 Common Var(flag_caller_saves) Optimization
1152 Save registers around function calls.
1154 fcheck-data-deps
1155 Common Ignore
1156 This switch is deprecated; do not use.
1158 fcheck-new
1159 Common Var(flag_check_new)
1160 Check the return value of new in C++.
1162 fchecking
1163 Common Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0)
1164 Perform internal consistency checkings.
1166 fchecking=
1167 Common Joined RejectNegative UInteger Var(flag_checking)
1168 Perform internal consistency checkings.
1170 fcode-hoisting
1171 Common Var(flag_code_hoisting) Optimization
1172 Enable code hoisting.
1174 fcombine-stack-adjustments
1175 Common Var(flag_combine_stack_adjustments) Optimization
1176 Looks for opportunities to reduce stack adjustments and stack references.
1178 fcommon
1179 Common Var(flag_no_common,0) Init(1)
1180 Put uninitialized globals in the common section.
1182 fcompare-debug
1183 Driver
1184 ; Converted by the driver to -fcompare-debug= options.
1186 fcompare-debug=
1187 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
1188 -fcompare-debug[=<opts>]        Compile with and without e.g. -gtoggle, and compare the final-insns dump.
1190 fcompare-debug-second
1191 Common Driver RejectNegative Var(flag_compare_debug)
1192 Run only the second compilation of -fcompare-debug.
1194 fcompare-elim
1195 Common Var(flag_compare_elim_after_reload) Optimization
1196 Perform comparison elimination after register allocation has finished.
1198 fconserve-stack
1199 Common Var(flag_conserve_stack) Optimization
1200 Do not perform optimizations increasing noticeably stack usage.
1202 fcprop-registers
1203 Common Var(flag_cprop_registers) Optimization
1204 Perform a register copy-propagation optimization pass.
1206 fcrossjumping
1207 Common Var(flag_crossjumping) Optimization
1208 Perform cross-jumping optimization.
1210 fcse-follow-jumps
1211 Common Var(flag_cse_follow_jumps) Optimization
1212 When running CSE, follow jumps to their targets.
1214 fcse-skip-blocks
1215 Common Ignore
1216 Does nothing.  Preserved for backward compatibility.
1218 fcx-limited-range
1219 Common Var(flag_cx_limited_range) Optimization SetByCombined
1220 Omit range reduction step when performing complex division.
1222 fcx-fortran-rules
1223 Common Var(flag_cx_fortran_rules) Optimization
1224 Complex multiplication and division follow Fortran rules.
1226 fdata-sections
1227 Common Var(flag_data_sections)
1228 Place data items into their own section.
1230 fdbg-cnt-list
1231 Common Var(flag_dbg_cnt_list)
1232 List all available debugging counters with their limits and counts.
1234 fdbg-cnt=
1235 Common RejectNegative Joined Var(common_deferred_options) Defer
1236 -fdbg-cnt=<counter>[:<lower_limit1>-]<upper_limit1>[:<lower_limit2>-<upper_limit2>:...][,<counter>:...] Set the debug counter limit.
1238 fdebug-prefix-map=
1239 Common Joined RejectNegative Var(common_deferred_options) Defer
1240 -fdebug-prefix-map=<old>=<new>  Map one directory name to another in debug information.
1242 ffile-prefix-map=
1243 Common Joined RejectNegative Var(common_deferred_options) Defer
1244 -ffile-prefix-map=<old>=<new>   Map one directory name to another in compilation result.
1246 fdebug-types-section
1247 Common Var(flag_debug_types_section) Init(0)
1248 Output .debug_types section when using DWARF v4 debuginfo.
1250 ; Nonzero for -fdefer-pop: don't pop args after each function call
1251 ; instead save them up to pop many calls' args with one insns.
1252 fdefer-pop
1253 Common Var(flag_defer_pop) Optimization
1254 Defer popping functions args from stack until later.
1256 fdelayed-branch
1257 Common Var(flag_delayed_branch) Optimization
1258 Attempt to fill delay slots of branch instructions.
1260 fdelete-dead-exceptions
1261 Common Var(flag_delete_dead_exceptions) Init(0) Optimization
1262 Delete dead instructions that may throw exceptions.
1264 fdelete-null-pointer-checks
1265 Common Var(flag_delete_null_pointer_checks) Init(-1) Optimization
1266 Delete useless null pointer checks.
1268 fdevirtualize-at-ltrans
1269 Common Var(flag_ltrans_devirtualize)
1270 Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
1272 fdevirtualize-speculatively
1273 Common Var(flag_devirtualize_speculatively) Optimization
1274 Perform speculative devirtualization.
1276 fdevirtualize
1277 Common Var(flag_devirtualize) Optimization
1278 Try to convert virtual calls to direct ones.
1280 fdiagnostics-show-location=
1281 Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
1282 -fdiagnostics-show-location=[once|every-line]   How often to emit source location at the beginning of line-wrapped diagnostics.
1284 ; Required for these enum values.
1285 SourceInclude
1286 pretty-print.h
1288 Enum
1289 Name(diagnostic_prefixing_rule) Type(int)
1291 EnumValue
1292 Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
1294 EnumValue
1295 Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
1297 fdiagnostics-show-caret
1298 Common Var(flag_diagnostics_show_caret) Init(1)
1299 Show the source line with a caret indicating the column.
1301 fdiagnostics-show-labels
1302 Common Var(flag_diagnostics_show_labels) Init(1)
1303 Show labels annotating ranges of source code when showing source.
1305 fdiagnostics-show-line-numbers
1306 Common Var(flag_diagnostics_show_line_numbers) Init(1)
1307 Show line numbers in the left margin when showing source.
1309 fdiagnostics-color
1310 Common Alias(fdiagnostics-color=,always,never)
1313 fdiagnostics-color=
1314 Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
1315 -fdiagnostics-color=[never|always|auto] Colorize diagnostics.
1317 ; Required for these enum values.
1318 SourceInclude
1319 diagnostic-color.h
1321 Enum
1322 Name(diagnostic_color_rule) Type(int)
1324 EnumValue
1325 Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
1327 EnumValue
1328 Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
1330 EnumValue
1331 Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
1333 fdiagnostics-urls=
1334 Driver Common Joined RejectNegative Var(flag_diagnostics_show_urls) Enum(diagnostic_url_rule) Init(DIAGNOSTICS_URL_AUTO)
1335 -fdiagnostics-urls=[never|always|auto]  Embed URLs in diagnostics.
1337 ; Required for these enum values.
1338 SourceInclude
1339 diagnostic-url.h
1341 Enum
1342 Name(diagnostic_url_rule) Type(int)
1344 EnumValue
1345 Enum(diagnostic_url_rule) String(never) Value(DIAGNOSTICS_URL_NO)
1347 EnumValue
1348 Enum(diagnostic_url_rule) String(always) Value(DIAGNOSTICS_URL_YES)
1350 EnumValue
1351 Enum(diagnostic_url_rule) String(auto) Value(DIAGNOSTICS_URL_AUTO)
1353 fdiagnostics-column-unit=
1354 Common Joined RejectNegative Enum(diagnostics_column_unit)
1355 -fdiagnostics-column-unit=[display|byte]        Select whether column numbers are output as display columns (default) or raw bytes.
1357 fdiagnostics-column-origin=
1358 Common Joined RejectNegative UInteger
1359 -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.
1361 fdiagnostics-format=
1362 Common Joined RejectNegative Enum(diagnostics_output_format)
1363 -fdiagnostics-format=[text|json]        Select output format.
1365 ; Required for these enum values.
1366 SourceInclude
1367 diagnostic.h
1369 Enum
1370 Name(diagnostics_column_unit) Type(int)
1372 EnumValue
1373 Enum(diagnostics_column_unit) String(display) Value(DIAGNOSTICS_COLUMN_UNIT_DISPLAY)
1375 EnumValue
1376 Enum(diagnostics_column_unit) String(byte) Value(DIAGNOSTICS_COLUMN_UNIT_BYTE)
1378 Enum
1379 Name(diagnostics_output_format) Type(int)
1381 EnumValue
1382 Enum(diagnostics_output_format) String(text) Value(DIAGNOSTICS_OUTPUT_FORMAT_TEXT)
1384 EnumValue
1385 Enum(diagnostics_output_format) String(json) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON)
1387 fdiagnostics-parseable-fixits
1388 Common Var(flag_diagnostics_parseable_fixits)
1389 Print fix-it hints in machine-readable form.
1391 fdiagnostics-generate-patch
1392 Common Var(flag_diagnostics_generate_patch)
1393 Print fix-it hints to stderr in unified diff format.
1395 fdiagnostics-show-option
1396 Common Var(flag_diagnostics_show_option) Init(1)
1397 Amend appropriate diagnostic messages with the command line option that controls them.
1399 fdiagnostics-show-cwe
1400 Common Var(flag_diagnostics_show_cwe) Init(1)
1401 Print CWE identifiers for diagnostic messages, where available.
1403 fdiagnostics-path-format=
1404 Common Joined RejectNegative Var(flag_diagnostics_path_format) Enum(diagnostic_path_format) Init(DPF_INLINE_EVENTS)
1405 Specify how to print any control-flow path associated with a diagnostic.
1407 fdiagnostics-plain-output
1408 Driver Common RejectNegative
1409 Turn off any diagnostics features that complicate the output, such as line numbers, color, and warning URLs.
1411 ftabstop=
1412 Common Joined RejectNegative UInteger
1413 -ftabstop=<number>      Distance between tab stops for column reporting.
1415 Enum
1416 Name(diagnostic_path_format) Type(int)
1418 EnumValue
1419 Enum(diagnostic_path_format) String(none) Value(DPF_NONE)
1421 EnumValue
1422 Enum(diagnostic_path_format) String(separate-events) Value(DPF_SEPARATE_EVENTS)
1424 EnumValue
1425 Enum(diagnostic_path_format) String(inline-events) Value(DPF_INLINE_EVENTS)
1427 fdiagnostics-show-path-depths
1428 Common Var(flag_diagnostics_show_path_depths) Init(0)
1429 Show stack depths of events in paths.
1431 fdiagnostics-minimum-margin-width=
1432 Common Joined UInteger Var(diagnostics_minimum_margin_width) Init(6)
1433 Set minimum width of left margin of source code when showing source.
1435 fdisable-
1436 Common Joined RejectNegative Var(common_deferred_options) Defer
1437 -fdisable-[tree|rtl|ipa]-<pass>=range1+range2   Disable an optimization pass.
1439 fenable-
1440 Common Joined RejectNegative Var(common_deferred_options) Defer
1441 -fenable-[tree|rtl|ipa]-<pass>=range1+range2    Enable an optimization pass.
1443 fdump-
1444 Common Joined RejectNegative Var(common_deferred_options) Defer
1445 -fdump-<type>   Dump various compiler internals to a file.
1447 fdump-final-insns
1448 Driver RejectNegative
1450 fdump-final-insns=
1451 Common RejectNegative Joined Var(flag_dump_final_insns)
1452 -fdump-final-insns=filename     Dump to filename the insns at the end of translation.
1454 fdump-go-spec=
1455 Common RejectNegative Joined Var(flag_dump_go_spec)
1456 -fdump-go-spec=filename Write all declarations to file as Go code.
1458 fdump-noaddr
1459 Common Var(flag_dump_noaddr)
1460 Suppress output of addresses in debugging dumps.
1462 freport-bug
1463 Common Driver Var(flag_report_bug)
1464 Collect and dump debug information into temporary file if ICE in C/C++
1465 compiler occurred.
1467 fdump-internal-locations
1468 Common Var(flag_dump_locations) Init(0)
1469 Dump detailed information on GCC's internal representation of source code locations.
1471 fdump-passes
1472 Common Var(flag_dump_passes) Init(0)
1473 Dump optimization passes.
1475 fdump-unnumbered
1476 Common Var(flag_dump_unnumbered)
1477 Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
1479 fdump-unnumbered-links
1480 Common Var(flag_dump_unnumbered_links)
1481 Suppress output of previous and next insn numbers in debugging dumps.
1483 fdwarf2-cfi-asm
1484 Common Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1485 Enable CFI tables via GAS assembler directives.
1487 fearly-inlining
1488 Common Var(flag_early_inlining) Init(1) Optimization
1489 Perform early inlining.
1491 feliminate-dwarf2-dups
1492 Common Ignore
1493 Does nothing.  Preserved for backward compatibility.
1495 fipa-sra
1496 Common Var(flag_ipa_sra) Init(0) Optimization
1497 Perform interprocedural reduction of aggregates.
1499 feliminate-unused-debug-symbols
1500 Common Var(flag_debug_only_used_symbols) Init(1)
1501 Perform unused symbol elimination in debug info.
1503 feliminate-unused-debug-types
1504 Common Var(flag_eliminate_unused_debug_types) Init(1)
1505 Perform unused type elimination in debug info.
1507 femit-class-debug-always
1508 Common Var(flag_emit_class_debug_always) Init(0)
1509 Do not suppress C++ class debug information.
1511 fexceptions
1512 Common Var(flag_exceptions) Optimization
1513 Enable exception handling.
1515 fexpensive-optimizations
1516 Common Var(flag_expensive_optimizations) Optimization
1517 Perform a number of minor, expensive optimizations.
1519 fexcess-precision=
1520 Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision) Init(EXCESS_PRECISION_DEFAULT) Optimization SetByCombined
1521 -fexcess-precision=[fast|standard]      Specify handling of excess floating-point precision.
1523 Enum
1524 Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1526 EnumValue
1527 Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1529 EnumValue
1530 Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1532 ; Whether we permit the extended set of values for FLT_EVAL_METHOD
1533 ; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11.
1534 fpermitted-flt-eval-methods=
1535 Common Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT)
1536 -fpermitted-flt-eval-methods=[c11|ts-18661]     Specify which values of FLT_EVAL_METHOD are permitted.
1538 Enum
1539 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)
1541 EnumValue
1542 Enum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11)
1544 EnumValue
1545 Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
1547 ffast-math
1548 Common Optimization
1550 ffat-lto-objects
1551 Common Var(flag_fat_lto_objects)
1552 Output lto objects containing both the intermediate language and binary output.
1554 ffinite-math-only
1555 Common Var(flag_finite_math_only) Optimization SetByCombined
1556 Assume no NaNs or infinities are generated.
1558 ffinite-loops
1559 Common Var(flag_finite_loops) Optimization Init(0)
1560 Assume that loops with an exit will terminate and not loop indefinitely.
1562 ffixed-
1563 Common Joined RejectNegative Var(common_deferred_options) Defer
1564 -ffixed-<register>      Mark <register> as being unavailable to the compiler.
1566 ffloat-store
1567 Common Var(flag_float_store) Optimization
1568 Don't allocate floats and doubles in extended-precision registers.
1570 fforce-addr
1571 Common Ignore
1572 Does nothing.  Preserved for backward compatibility.
1574 fforward-propagate
1575 Common Var(flag_forward_propagate) Optimization
1576 Perform a forward propagation pass on RTL.
1578 ffp-contract=
1579 Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
1580 -ffp-contract=[off|on|fast]     Perform floating-point expression contraction.
1582 Enum
1583 Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1585 EnumValue
1586 Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1588 ; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1589 EnumValue
1590 Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1592 EnumValue
1593 Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1595 ffp-int-builtin-inexact
1596 Common Var(flag_fp_int_builtin_inexact) Init(1) Optimization
1597 Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
1599 ; Nonzero means don't put addresses of constant functions in registers.
1600 ; Used for compiling the Unix kernel, where strange substitutions are
1601 ; done on the assembly output.
1602 ffunction-cse
1603 Common Var(flag_no_function_cse,0) Optimization
1604 Allow function addresses to be held in registers.
1606 ffunction-sections
1607 Common Var(flag_function_sections)
1608 Place each function into its own section.
1610 fgcse
1611 Common Var(flag_gcse) Optimization
1612 Perform global common subexpression elimination.
1614 fgcse-lm
1615 Common Var(flag_gcse_lm) Init(1) Optimization
1616 Perform enhanced load motion during global common subexpression elimination.
1618 fgcse-sm
1619 Common Var(flag_gcse_sm) Init(0) Optimization
1620 Perform store motion after global common subexpression elimination.
1622 fgcse-las
1623 Common Var(flag_gcse_las) Init(0) Optimization
1624 Perform redundant load after store elimination in global common subexpression
1625 elimination.
1627 fgcse-after-reload
1628 Common Var(flag_gcse_after_reload) Optimization
1629 Perform global common subexpression elimination after register allocation has
1630 finished.
1632 Enum
1633 Name(dwarf_gnat_encodings) Type(int)
1635 EnumValue
1636 Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
1638 EnumValue
1639 Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
1641 EnumValue
1642 Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
1644 fgnat-encodings=
1645 Common Enum(dwarf_gnat_encodings) Joined RejectNegative Undocumented Var(gnat_encodings)
1646 -fgnat-encodings=[all|gdb|minimal]      Select the balance between GNAT encodings and standard DWARF emitted in the debug information.
1648 ; This option is not documented yet as its semantics will change.
1649 fgraphite
1650 Common Var(flag_graphite) Optimization
1651 Enable in and out of Graphite representation.
1653 fgraphite-identity
1654 Common Var(flag_graphite_identity) Optimization
1655 Enable Graphite Identity transformation.
1657 fhoist-adjacent-loads
1658 Common Var(flag_hoist_adjacent_loads) Optimization
1659 Enable hoisting adjacent loads to encourage generating conditional move
1660 instructions.
1662 fkeep-gc-roots-live
1663 Common Undocumented Var(flag_keep_gc_roots_live) Optimization
1664 ; Always keep a pointer to a live memory block
1666 flarge-source-files
1667 Common Var(flag_large_source_files) Init(0)
1668 Improve GCC's ability to track column numbers in large source files,
1669 at the expense of slower compilation.
1671 floop-parallelize-all
1672 Common Var(flag_loop_parallelize_all) Optimization
1673 Mark all loops as parallel.
1675 floop-strip-mine
1676 Common Alias(floop-nest-optimize)
1677 Enable loop nest transforms.  Same as -floop-nest-optimize.
1679 floop-interchange
1680 Common Var(flag_loop_interchange) Optimization
1681 Enable loop interchange on trees.
1683 floop-block
1684 Common Alias(floop-nest-optimize)
1685 Enable loop nest transforms.  Same as -floop-nest-optimize.
1687 floop-unroll-and-jam
1688 Common Var(flag_unroll_jam) Optimization
1689 Perform unroll-and-jam on loops.
1691 fgnu-tm
1692 Common Var(flag_tm)
1693 Enable support for GNU transactional memory.
1695 fgnu-unique
1696 Common Var(flag_gnu_unique) Init(1)
1697 Use STB_GNU_UNIQUE if supported by the assembler.
1699 floop-flatten
1700 Common Ignore
1701 Does nothing. Preserved for backward compatibility.
1703 floop-nest-optimize
1704 Common Var(flag_loop_nest_optimize) Optimization
1705 Enable the loop nest optimizer.
1707 fstrict-volatile-bitfields
1708 Common Var(flag_strict_volatile_bitfields) Init(-1) Optimization
1709 Force bitfield accesses to match their type width.
1711 fstore-merging
1712 Common Var(flag_store_merging) Optimization
1713 Merge adjacent stores.
1715 fguess-branch-probability
1716 Common Var(flag_guess_branch_prob) Optimization
1717 Enable guessing of branch probabilities.
1719 ; Nonzero means ignore `#ident' directives.  0 means handle them.
1720 ; Generate position-independent code for executables if possible
1721 ; On SVR4 targets, it also controls whether or not to emit a
1722 ; string identifying the compiler.
1723 fident
1724 Common Var(flag_no_ident,0)
1725 Process #ident directives.
1727 fif-conversion
1728 Common Var(flag_if_conversion) Optimization
1729 Perform conversion of conditional jumps to branchless equivalents.
1731 fif-conversion2
1732 Common Var(flag_if_conversion2) Optimization
1733 Perform conversion of conditional jumps to conditional execution.
1735 fstack-reuse=
1736 Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
1737 -fstack-reuse=[all|named_vars|none]     Set stack reuse level for local variables.
1739 Enum
1740 Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1742 EnumValue
1743 Enum(stack_reuse_level) String(all) Value(SR_ALL)
1745 EnumValue
1746 Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1748 EnumValue
1749 Enum(stack_reuse_level) String(none) Value(SR_NONE)
1751 ftree-loop-if-convert
1752 Common Var(flag_tree_loop_if_convert) Init(-1) Optimization
1753 Convert conditional jumps in innermost loops to branchless equivalents.
1755 ftree-loop-if-convert-stores
1756 Common Ignore
1757 Does nothing. Preserved for backward compatibility.
1759 ; -finhibit-size-directive inhibits output of .size for ELF.
1760 ; This is used only for compiling crtstuff.c,
1761 ; and it may be extended to other effects
1762 ; needed for crtstuff.c on other systems.
1763 finhibit-size-directive
1764 Common Var(flag_inhibit_size_directive)
1765 Do not generate .size directives.
1767 findirect-inlining
1768 Common Var(flag_indirect_inlining) Optimization
1769 Perform indirect inlining.
1771 ; General flag to enable inlining.  Specifying -fno-inline will disable
1772 ; all inlining apart from always-inline functions.
1773 finline
1774 Common Var(flag_no_inline,0) Init(0) Optimization
1775 Enable inlining of function declared \"inline\", disabling disables all inlining.
1777 finline-small-functions
1778 Common Var(flag_inline_small_functions) Optimization
1779 Integrate functions into their callers when code size is known not to grow.
1781 finline-functions
1782 Common Var(flag_inline_functions) Optimization
1783 Integrate functions not declared \"inline\" into their callers when profitable.
1785 finline-functions-called-once
1786 Common Var(flag_inline_functions_called_once) Optimization
1787 Integrate functions only required by their single caller.
1789 finline-limit-
1790 Common RejectNegative Joined Alias(finline-limit=)
1792 finline-limit=
1793 Common RejectNegative Joined UInteger
1794 -finline-limit=<number> Limit the size of inlined functions to <number>.
1796 finline-atomics
1797 Common Var(flag_inline_atomics) Init(1) Optimization
1798 Inline __atomic operations when a lock free instruction sequence is available.
1800 fcf-protection
1801 Common RejectNegative Alias(fcf-protection=,full)
1803 fcf-protection=
1804 Common Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE)
1805 -fcf-protection=[full|branch|return|none|check] Instrument functions with checks to verify jump/call/return control-flow transfer
1806 instructions have valid targets.
1808 Enum
1809 Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs)
1811 EnumValue
1812 Enum(cf_protection_level) String(full) Value(CF_FULL)
1814 EnumValue
1815 Enum(cf_protection_level) String(branch) Value(CF_BRANCH)
1817 EnumValue
1818 Enum(cf_protection_level) String(return) Value(CF_RETURN)
1820 EnumValue
1821 Enum(cf_protection_level) String(check) Value(CF_CHECK)
1823 EnumValue
1824 Enum(cf_protection_level) String(none) Value(CF_NONE)
1826 finstrument-functions
1827 Common Var(flag_instrument_function_entry_exit)
1828 Instrument function entry and exit with profiling calls.
1830 finstrument-functions-exclude-function-list=
1831 Common RejectNegative Joined
1832 -finstrument-functions-exclude-function-list=name,...   Do not instrument listed functions.
1834 finstrument-functions-exclude-file-list=
1835 Common RejectNegative Joined
1836 -finstrument-functions-exclude-file-list=filename,...   Do not instrument functions listed in files.
1838 fipa-cp
1839 Common Var(flag_ipa_cp) Optimization
1840 Perform interprocedural constant propagation.
1842 fipa-cp-clone
1843 Common Var(flag_ipa_cp_clone) Optimization
1844 Perform cloning to make Interprocedural constant propagation stronger.
1846 fipa-cp-alignment
1847 Common Ignore
1848 Does nothing.  Preserved for backward compatibility.
1850 fipa-bit-cp
1851 Common Var(flag_ipa_bit_cp) Optimization
1852 Perform interprocedural bitwise constant propagation.
1854 fipa-modref
1855 Common Var(flag_ipa_modref) Optimization
1856 Perform interprocedural modref analysis.
1858 fipa-profile
1859 Common Var(flag_ipa_profile) Init(0) Optimization
1860 Perform interprocedural profile propagation.
1862 fipa-pta
1863 Common Var(flag_ipa_pta) Init(0) Optimization
1864 Perform interprocedural points-to analysis.
1866 fipa-pure-const
1867 Common Var(flag_ipa_pure_const) Init(0) Optimization
1868 Discover pure and const functions.
1870 fipa-icf
1871 Common Var(flag_ipa_icf) Optimization
1872 Perform Identical Code Folding for functions and read-only variables.
1874 fipa-icf-functions
1875 Common Var(flag_ipa_icf_functions) Optimization
1876 Perform Identical Code Folding for functions.
1878 fipa-icf-variables
1879 Common Var(flag_ipa_icf_variables) Optimization
1880 Perform Identical Code Folding for variables.
1882 fipa-reference
1883 Common Var(flag_ipa_reference) Init(0) Optimization
1884 Discover read-only and non addressable static variables.
1886 fipa-reference-addressable
1887 Common Var(flag_ipa_reference_addressable) Init(0) Optimization
1888 Discover read-only, write-only and non-addressable static variables.
1890 fipa-stack-alignment
1891 Common Var(flag_ipa_stack_alignment) Init(1) Optimization
1892 Reduce stack alignment on call sites if possible.
1894 fipa-matrix-reorg
1895 Common Ignore
1896 Does nothing. Preserved for backward compatibility.
1898 fipa-struct-reorg
1899 Common Ignore
1900 Does nothing. Preserved for backward compatibility.
1902 fipa-vrp
1903 Common Var(flag_ipa_vrp) Optimization
1904 Perform IPA Value Range Propagation.
1906 fira-algorithm=
1907 Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
1908 -fira-algorithm=[CB|priority]   Set the used IRA algorithm.
1910 Enum
1911 Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1913 EnumValue
1914 Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1916 EnumValue
1917 Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1919 fira-region=
1920 Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT) Optimization
1921 -fira-region=[one|all|mixed]    Set regions for IRA.
1923 Enum
1924 Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1926 EnumValue
1927 Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1929 EnumValue
1930 Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1932 EnumValue
1933 Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1935 fira-hoist-pressure
1936 Common Var(flag_ira_hoist_pressure) Init(1) Optimization
1937 Use IRA based register pressure calculation
1938 in RTL hoist optimizations.
1940 fira-loop-pressure
1941 Common Var(flag_ira_loop_pressure) Optimization
1942 Use IRA based register pressure calculation
1943 in RTL loop optimizations.
1945 fira-share-save-slots
1946 Common Var(flag_ira_share_save_slots) Init(1) Optimization
1947 Share slots for saving different hard registers.
1949 fira-share-spill-slots
1950 Common Var(flag_ira_share_spill_slots) Init(1) Optimization
1951 Share stack slots for spilled pseudo-registers.
1953 fira-verbose=
1954 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
1955 -fira-verbose=<number>  Control IRA's level of diagnostic messages.
1957 fivopts
1958 Common Var(flag_ivopts) Init(1) Optimization
1959 Optimize induction variables on trees.
1961 fjump-tables
1962 Common Var(flag_jump_tables) Init(1) Optimization
1963 Use jump tables for sufficiently large switch statements.
1965 fbit-tests
1966 Common Var(flag_bit_tests) Init(1) Optimization
1967 Use bit tests for sufficiently large switch statements.
1969 fkeep-inline-functions
1970 Common Var(flag_keep_inline_functions)
1971 Generate code for functions even if they are fully inlined.
1973 fkeep-static-functions
1974 Common Var(flag_keep_static_functions)
1975 Generate code for static functions even if they are never called.
1977 fkeep-static-consts
1978 Common Var(flag_keep_static_consts) Init(1)
1979 Emit static const variables even if they are not used.
1981 fleading-underscore
1982 Common Var(flag_leading_underscore) Init(-1)
1983 Give external symbols a leading underscore.
1985 floop-optimize
1986 Common Ignore
1987 Does nothing.  Preserved for backward compatibility.
1989 flra-remat
1990 Common Var(flag_lra_remat) Optimization
1991 Do CFG-sensitive rematerialization in LRA.
1993 flto
1994 Common
1995 Enable link-time optimization.
1997 flto=
1998 Common RejectNegative Joined Var(flag_lto)
1999 Link-time optimization with number of parallel jobs or jobserver.
2001 Enum
2002 Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
2004 EnumValue
2005 Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
2007 EnumValue
2008 Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
2010 EnumValue
2011 Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
2013 EnumValue
2014 Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
2016 EnumValue
2017 Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
2019 flto-partition=
2020 Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
2021 Specify the algorithm to partition symbols and vars at linktime.
2023 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
2024 flto-compression-level=
2025 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 19)
2026 -flto-compression-level=<number>        Use zlib/zstd compression level <number> for IL.
2028 flto-odr-type-merging
2029 Common Ignore
2030 Does nothing.  Preserved for backward compatibility.
2032 flto-report
2033 Common Var(flag_lto_report) Init(0)
2034 Report various link-time optimization statistics.
2036 flto-report-wpa
2037 Common Var(flag_lto_report_wpa) Init(0)
2038 Report various link-time optimization statistics for WPA only.
2040 fmath-errno
2041 Common Var(flag_errno_math) Init(1) Optimization SetByCombined
2042 Set errno after built-in math functions.
2044 fmax-errors=
2045 Common Joined RejectNegative UInteger Var(flag_max_errors)
2046 -fmax-errors=<number>   Maximum number of errors to report.
2048 fmem-report
2049 Common Var(mem_report)
2050 Report on permanent memory allocation.
2052 fmem-report-wpa
2053 Common Var(mem_report_wpa)
2054 Report on permanent memory allocation in WPA only.
2056 ; This will attempt to merge constant section constants, if 1 only
2057 ; string constants and constants from constant pool, if 2 also constant
2058 ; variables.
2059 fmerge-all-constants
2060 Common Var(flag_merge_constants,2) Init(1)
2061 Attempt to merge identical constants and constant variables.
2063 fmerge-constants
2064 Common Var(flag_merge_constants,1)
2065 Attempt to merge identical constants across compilation units.
2067 fmerge-debug-strings
2068 Common Var(flag_merge_debug_strings) Init(1)
2069 Attempt to merge identical debug strings across compilation units.
2071 fmessage-length=
2072 Common RejectNegative Joined UInteger
2073 -fmessage-length=<number>       Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping.
2075 fmodulo-sched
2076 Common Var(flag_modulo_sched) Optimization
2077 Perform SMS based modulo scheduling before the first scheduling pass.
2079 fmodulo-sched-allow-regmoves
2080 Common Var(flag_modulo_sched_allow_regmoves) Optimization
2081 Perform SMS based modulo scheduling with register moves allowed.
2083 fmove-loop-invariants
2084 Common Var(flag_move_loop_invariants) Optimization
2085 Move loop invariant computations out of loops.
2087 fmove-loop-stores
2088 Common Var(flag_move_loop_stores) Optimization
2089 Move stores out of loops.
2091 fdce
2092 Common Var(flag_dce) Init(1) Optimization
2093 Use the RTL dead code elimination pass.
2095 fdse
2096 Common Var(flag_dse) Init(0) Optimization
2097 Use the RTL dead store elimination pass.
2099 freschedule-modulo-scheduled-loops
2100 Common Var(flag_resched_modulo_sched) Optimization
2101 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
2103 fnon-call-exceptions
2104 Common Var(flag_non_call_exceptions) Optimization
2105 Support synchronous non-call exceptions.
2107 foffload=
2108 Driver Joined MissingArgError(targets missing after %qs)
2110 foffload-options=
2111 Common Driver Joined MissingArgError(options or targets=options missing after %qs)
2112 -foffload-options=<targets>=<options>   Specify options for the offloading targets.
2114 foffload-abi=
2115 Common Joined RejectNegative Enum(offload_abi)
2116 -foffload-abi=[lp64|ilp32]      Set the ABI to use in an offload compiler.
2118 Enum
2119 Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
2121 EnumValue
2122 Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
2124 EnumValue
2125 Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
2127 fomit-frame-pointer
2128 Common Var(flag_omit_frame_pointer) Optimization
2129 When possible do not generate stack frames.
2131 fopt-info
2132 Common Var(flag_opt_info) Optimization
2133 Enable all optimization info dumps on stderr.
2135 fopt-info-
2136 Common Joined RejectNegative Var(common_deferred_options) Defer
2137 -fopt-info[-<type>=filename]    Dump compiler optimization details.
2139 fsave-optimization-record
2140 Common Var(flag_save_optimization_record) Optimization
2141 Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
2143 foptimize-register-move
2144 Common Ignore
2145 Does nothing. Preserved for backward compatibility.
2147 foptimize-sibling-calls
2148 Common Var(flag_optimize_sibling_calls) Optimization
2149 Optimize sibling and tail recursive calls.
2151 fpartial-inlining
2152 Common Var(flag_partial_inlining) Optimization
2153 Perform partial inlining.
2155 fpre-ipa-mem-report
2156 Common Var(pre_ipa_mem_report)
2157 Report on memory allocation before interprocedural optimization.
2159 fpost-ipa-mem-report
2160 Common Var(post_ipa_mem_report)
2161 Report on memory allocation before interprocedural optimization.
2163 fpack-struct
2164 Common Var(flag_pack_struct) Optimization
2165 Pack structure members together without holes.
2167 fpack-struct=
2168 Common RejectNegative Joined UInteger Optimization
2169 -fpack-struct=<number>  Set initial maximum structure member alignment.
2171 fpcc-struct-return
2172 Common Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
2173 Return small aggregates in memory, not registers.
2175 fpeel-loops
2176 Common Var(flag_peel_loops) Optimization
2177 Perform loop peeling.
2179 fpeephole
2180 Common Var(flag_no_peephole,0) Optimization
2181 Enable machine specific peephole optimizations.
2183 fpeephole2
2184 Common Var(flag_peephole2) Optimization
2185 Enable an RTL peephole pass before sched2.
2187 fPIC
2188 Common Var(flag_pic,2) Negative(fPIE) Init(-1)
2189 Generate position-independent code if possible (large mode).
2191 fPIE
2192 Common Var(flag_pie,2) Negative(fpic) Init(-1)
2193 Generate position-independent code for executables if possible (large mode).
2195 fpic
2196 Common Var(flag_pic,1) Negative(fpie) Init(-1)
2197 Generate position-independent code if possible (small mode).
2199 fpie
2200 Common Var(flag_pie,1) Negative(fPIC) Init(-1)
2201 Generate position-independent code for executables if possible (small mode).
2203 fplt
2204 Common Var(flag_plt) Init(1) Optimization
2205 Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
2207 fplugin=
2208 Common Joined RejectNegative Var(common_deferred_options) Defer
2209 Specify a plugin to load.
2211 fplugin-arg-
2212 Common Joined RejectNegative Var(common_deferred_options) Defer
2213 -fplugin-arg-<name>-<key>[=<value>]     Specify argument <key>=<value> for plugin <name>.
2215 fpredictive-commoning
2216 Common Var(flag_predictive_commoning) Optimization
2217 Run predictive commoning optimization.
2219 fprefetch-loop-arrays
2220 Common Var(flag_prefetch_loop_arrays) Init(-1) Optimization
2221 Generate prefetch instructions, if available, for arrays in loops.
2223 fprofile
2224 Common Var(profile_flag)
2225 Enable basic program profiling code.
2227 fprofile-abs-path
2228 Common Var(profile_abs_path_flag)
2229 Generate absolute source path names for gcov.
2231 fprofile-arcs
2232 Common Var(profile_arc_flag)
2233 Insert arc-based program profiling code.
2235 fprofile-dir=
2236 Common Joined RejectNegative Var(profile_data_prefix)
2237 Set the top-level directory for storing the profile data.
2238 The default is 'pwd'.
2240 fprofile-note=
2241 Common Joined RejectNegative Var(profile_note_location)
2242 Select the name for storing the profile note file.
2244 fprofile-correction
2245 Common Var(flag_profile_correction)
2246 Enable correction of flow inconsistent profile data input.
2248 fprofile-update=
2249 Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE)
2250 -fprofile-update=[single|atomic|prefer-atomic]  Set the profile update method.
2252 fprofile-filter-files=
2253 Common Joined RejectNegative Var(flag_profile_filter_files)
2254 Instrument only functions from files whose name matches any of the regular expressions (separated by semi-colons).
2256 fprofile-exclude-files=
2257 Common Joined RejectNegative Var(flag_profile_exclude_files)
2258 Instrument only functions from files whose name does not match any of the regular expressions (separated by semi-colons).
2260 Enum
2261 Name(profile_reproducibility) Type(enum profile_reproducibility) UnknownError(unknown profile reproducibility method %qs)
2263 EnumValue
2264 Enum(profile_reproducibility) String(serial) Value(PROFILE_REPRODUCIBILITY_SERIAL)
2266 EnumValue
2267 Enum(profile_reproducibility) String(parallel-runs) Value(PROFILE_REPRODUCIBILITY_PARALLEL_RUNS)
2269 EnumValue
2270 Enum(profile_reproducibility) String(multithreaded) Value(PROFILE_REPRODUCIBILITY_MULTITHREADED)
2272 fprofile-reproducible=
2273 Common Joined RejectNegative Var(flag_profile_reproducible) Enum(profile_reproducibility) Init(PROFILE_REPRODUCIBILITY_SERIAL)
2274 -fprofile-reproducible=[serial|parallel-runs|multithreaded]     Control level of reproducibility of profile gathered by -fprofile-generate.
2276 Enum
2277 Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs)
2279 EnumValue
2280 Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE)
2282 EnumValue
2283 Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC)
2285 EnumValue
2286 Enum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC)
2288 fprofile-prefix-path=
2289 Common Joined RejectNegative Var(profile_prefix_path)
2290 Remove prefix from absolute path before mangling name for -fprofile-generate= and -fprofile-use=.
2292 fprofile-generate
2293 Common
2294 Enable common options for generating profile info for profile feedback directed optimizations.
2296 fprofile-generate=
2297 Common Joined RejectNegative
2298 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
2300 fprofile-info-section
2301 Common RejectNegative
2302 Register the profile information in the .gcov_info section instead of using a constructor/destructor.
2304 fprofile-info-section=
2305 Common Joined RejectNegative Var(profile_info_section)
2306 Register the profile information in the specified section instead of using a constructor/destructor.
2308 fprofile-partial-training
2309 Common Var(flag_profile_partial_training) Optimization
2310 Do not assume that functions never executed during the train run are cold.
2312 fprofile-use
2313 Common Var(flag_profile_use)
2314 Enable common options for performing profile feedback directed optimizations.
2316 fprofile-use=
2317 Common Joined RejectNegative
2318 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
2320 fprofile-values
2321 Common Var(flag_profile_values)
2322 Insert code to profile values of expressions.
2324 fprofile-report
2325 Common Var(profile_report)
2326 Report on consistency of profile.
2328 fprofile-reorder-functions
2329 Common Var(flag_profile_reorder_functions) Optimization
2330 Enable function reordering that improves code placement.
2332 fpatchable-function-entry=
2333 Common Var(flag_patchable_function_entry) Joined Optimization
2334 Insert NOP instructions at each function entry.
2336 frandom-seed
2337 Common Var(common_deferred_options) Defer
2339 frandom-seed=
2340 Common Joined RejectNegative Var(common_deferred_options) Defer
2341 -frandom-seed=<string>  Make compile reproducible using <string>.
2343 ; This switch causes the command line that was used to create an
2344 ; object file to be recorded into the object file.  The exact format
2345 ; of this recording is target and binary file format dependent.
2346 ; It is related to the -fverbose-asm switch, but that switch only
2347 ; records information in the assembler output file as comments, so
2348 ; they never reach the object file.
2349 frecord-gcc-switches
2350 Common Var(flag_record_gcc_switches)
2351 Record gcc command line switches in the object file.
2353 freg-struct-return
2354 Common Var(flag_pcc_struct_return,0) Optimization
2355 Return small aggregates in registers.
2357 fregmove
2358 Common Ignore
2359 Does nothing. Preserved for backward compatibility.
2361 flifetime-dse
2362 Common Var(flag_lifetime_dse,2) Init(2) Optimization
2363 Tell DSE that the storage for a C++ object is dead when the constructor
2364 starts and when the destructor finishes.
2366 flifetime-dse=
2367 Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
2369 flive-patching
2370 Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
2372 flive-patching=
2373 Common Joined RejectNegative Enum(live_patching_level) Var(flag_live_patching) Init(LIVE_PATCHING_NONE) Optimization
2374 -flive-patching=[inline-only-static|inline-clone]       Control IPA
2375 optimizations to provide a safe compilation for live-patching.  At the same
2376 time, provides multiple-level control on the enabled IPA optimizations.
2378 Enum
2379 Name(live_patching_level) Type(enum live_patching_level) UnknownError(unknown Live-Patching Level %qs)
2381 EnumValue
2382 Enum(live_patching_level) String(inline-only-static) Value(LIVE_PATCHING_INLINE_ONLY_STATIC)
2384 EnumValue
2385 Enum(live_patching_level) String(inline-clone) Value(LIVE_PATCHING_INLINE_CLONE)
2387 fallocation-dce
2388 Common Var(flag_allocation_dce) Init(1) Optimization
2389 Tell DCE to remove unused C++ allocations.
2391 flive-range-shrinkage
2392 Common Var(flag_live_range_shrinkage) Init(0) Optimization
2393 Relief of register pressure through live range shrinkage.
2395 frename-registers
2396 Common Var(flag_rename_registers) Init(2) Optimization
2397 Perform a register renaming optimization pass.
2399 fschedule-fusion
2400 Common Var(flag_schedule_fusion) Init(2) Optimization
2401 Perform a target dependent instruction fusion optimization pass.
2403 freorder-blocks
2404 Common Var(flag_reorder_blocks) Optimization
2405 Reorder basic blocks to improve code placement.
2407 freorder-blocks-algorithm=
2408 Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
2409 -freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
2411 Enum
2412 Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
2414 EnumValue
2415 Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
2417 EnumValue
2418 Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
2420 freorder-blocks-and-partition
2421 Common Var(flag_reorder_blocks_and_partition) Optimization
2422 Reorder basic blocks and partition into hot and cold sections.
2424 freorder-functions
2425 Common Var(flag_reorder_functions) Optimization
2426 Reorder functions to improve code placement.
2428 frerun-cse-after-loop
2429 Common Var(flag_rerun_cse_after_loop) Optimization
2430 Add a common subexpression elimination pass after loop optimizations.
2432 frerun-loop-opt
2433 Common Ignore
2434 Does nothing.  Preserved for backward compatibility.
2436 frounding-math
2437 Common Var(flag_rounding_math) Optimization SetByCombined
2438 Disable optimizations that assume default FP rounding behavior.
2440 fsched-interblock
2441 Common Var(flag_schedule_interblock) Init(1) Optimization
2442 Enable scheduling across basic blocks.
2444 fsched-pressure
2445 Common Var(flag_sched_pressure) Init(0) Optimization
2446 Enable register pressure sensitive insn scheduling.
2448 fsched-spec
2449 Common Var(flag_schedule_speculative) Init(1) Optimization
2450 Allow speculative motion of non-loads.
2452 fsched-spec-load
2453 Common Var(flag_schedule_speculative_load) Optimization
2454 Allow speculative motion of some loads.
2456 fsched-spec-load-dangerous
2457 Common Var(flag_schedule_speculative_load_dangerous) Optimization
2458 Allow speculative motion of more loads.
2460 fsched-verbose=
2461 Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
2462 -fsched-verbose=<number>        Set the verbosity level of the scheduler.
2464 fsched2-use-superblocks
2465 Common Var(flag_sched2_use_superblocks) Optimization
2466 If scheduling post reload, do superblock scheduling.
2468 fsched2-use-traces
2469 Common Ignore
2470 Does nothing.  Preserved for backward compatibility.
2472 fschedule-insns
2473 Common Var(flag_schedule_insns) Optimization
2474 Reschedule instructions before register allocation.
2476 fschedule-insns2
2477 Common Var(flag_schedule_insns_after_reload) Optimization
2478 Reschedule instructions after register allocation.
2480 ; This flag should be on when a target implements non-trivial
2481 ; scheduling hooks, maybe saving some information for its own sake.
2482 ; On IA64, for example, this is used for correct bundling.
2483 fselective-scheduling
2484 Common Var(flag_selective_scheduling) Optimization
2485 Schedule instructions using selective scheduling algorithm.
2487 fselective-scheduling2
2488 Common Var(flag_selective_scheduling2) Optimization
2489 Run selective scheduling after reload.
2491 fself-test=
2492 Common Undocumented Joined Var(flag_self_test)
2493 Run self-tests, using the given path to locate test files.
2495 fsel-sched-pipelining
2496 Common Var(flag_sel_sched_pipelining) Init(0) Optimization
2497 Perform software pipelining of inner loops during selective scheduling.
2499 fsel-sched-pipelining-outer-loops
2500 Common Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
2501 Perform software pipelining of outer loops during selective scheduling.
2503 fsel-sched-reschedule-pipelined
2504 Common Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
2505 Reschedule pipelined regions without pipelining.
2507 fsemantic-interposition
2508 Common Var(flag_semantic_interposition) Init(1)
2509 Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
2511 ; sched_stalled_insns means that insns can be moved prematurely from the queue
2512 ; of stalled insns into the ready list.
2513 fsched-stalled-insns
2514 Common Var(flag_sched_stalled_insns) Optimization UInteger
2515 Allow premature scheduling of queued insns.
2517 fsched-stalled-insns=
2518 Common RejectNegative Joined UInteger Optimization
2519 -fsched-stalled-insns=<number>  Set number of queued insns that can be prematurely scheduled.
2521 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
2522 ; be examined for a dependency on a stalled insn that is candidate for
2523 ; premature removal from the queue of stalled insns into the ready list (has
2524 ; an effect only if the flag 'sched_stalled_insns' is set).
2525 fsched-stalled-insns-dep
2526 Common Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
2527 Set dependence distance checking in premature scheduling of queued insns.
2529 fsched-stalled-insns-dep=
2530 Common RejectNegative Joined UInteger Optimization
2531 -fsched-stalled-insns-dep=<number>      Set dependence distance checking in premature scheduling of queued insns.
2533 fsched-group-heuristic
2534 Common Var(flag_sched_group_heuristic) Init(1) Optimization
2535 Enable the group heuristic in the scheduler.
2537 fsched-critical-path-heuristic
2538 Common Var(flag_sched_critical_path_heuristic) Init(1) Optimization
2539 Enable the critical path heuristic in the scheduler.
2541 fsched-spec-insn-heuristic
2542 Common Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
2543 Enable the speculative instruction heuristic in the scheduler.
2545 fsched-rank-heuristic
2546 Common Var(flag_sched_rank_heuristic) Init(1) Optimization
2547 Enable the rank heuristic in the scheduler.
2549 fsched-last-insn-heuristic
2550 Common Var(flag_sched_last_insn_heuristic) Init(1) Optimization
2551 Enable the last instruction heuristic in the scheduler.
2553 fsched-dep-count-heuristic
2554 Common Var(flag_sched_dep_count_heuristic) Init(1) Optimization
2555 Enable the dependent count heuristic in the scheduler.
2557 fsection-anchors
2558 Common Var(flag_section_anchors) Optimization
2559 Access data in the same section from shared anchor points.
2561 fsee
2562 Common Ignore
2563 Does nothing.  Preserved for backward compatibility.
2565 fzee
2566 Common Ignore
2567 Does nothing.  Preserved for backward compatibility.
2569 free
2570 Common Var(flag_ree) Init(0) Optimization
2571 Turn on Redundant Extensions Elimination pass.
2573 fshow-column
2574 Common Var(flag_show_column) Init(1)
2575 Show column numbers in diagnostics, when available.  Default on.
2577 fshrink-wrap
2578 Common Var(flag_shrink_wrap) Optimization
2579 Emit function prologues only before parts of the function that need it,
2580 rather than at the top of the function.
2582 fshrink-wrap-separate
2583 Common Var(flag_shrink_wrap_separate) Init(1) Optimization
2584 Shrink-wrap parts of the prologue and epilogue separately.
2586 fsignaling-nans
2587 Common Var(flag_signaling_nans) Optimization SetByCombined
2588 Disable optimizations observable by IEEE signaling NaNs.
2590 fsigned-zeros
2591 Common Var(flag_signed_zeros) Init(1) Optimization SetByCombined
2592 Disable floating point optimizations that ignore the IEEE signedness of zero.
2594 fsingle-precision-constant
2595 Common Var(flag_single_precision_constant) Optimization
2596 Convert floating point constants to single precision constants.
2598 fsplit-ivs-in-unroller
2599 Common Var(flag_split_ivs_in_unroller) Init(1) Optimization
2600 Split lifetimes of induction variables when loops are unrolled.
2602 fsplit-stack
2603 Common Var(flag_split_stack) Init(-1)
2604 Generate discontiguous stack frames.
2606 fsplit-wide-types
2607 Common Var(flag_split_wide_types) Optimization
2608 Split wide types into independent registers.
2610 fsplit-wide-types-early
2611 Common Var(flag_split_wide_types_early) Optimization
2612 Split wide types into independent registers earlier.
2614 fssa-backprop
2615 Common Var(flag_ssa_backprop) Init(1) Optimization
2616 Enable backward propagation of use properties at the SSA level.
2618 fssa-phiopt
2619 Common Var(flag_ssa_phiopt) Optimization
2620 Optimize conditional patterns using SSA PHI nodes.
2622 fstdarg-opt
2623 Common Var(flag_stdarg_opt) Init(1) Optimization
2624 Optimize amount of stdarg registers saved to stack at start of function.
2626 fvariable-expansion-in-unroller
2627 Common Var(flag_variable_expansion_in_unroller) Optimization
2628 Apply variable expansion when loops are unrolled.
2630 fstack-check=
2631 Common RejectNegative Joined Optimization
2632 -fstack-check=[no|generic|specific]     Insert stack checking code into the program.
2634 fstack-check
2635 Common Alias(fstack-check=, specific, no)
2636 Insert stack checking code into the program.  Same as -fstack-check=specific.
2638 fstack-clash-protection
2639 Common Var(flag_stack_clash_protection) Optimization
2640 Insert code to probe each page of stack space as it is allocated to protect
2641 from stack-clash style attacks.
2643 fstack-limit
2644 Common Var(common_deferred_options) Defer
2646 fstack-limit-register=
2647 Common RejectNegative Joined Var(common_deferred_options) Defer
2648 -fstack-limit-register=<register>       Trap if the stack goes past <register>.
2650 fstack-limit-symbol=
2651 Common RejectNegative Joined Var(common_deferred_options) Defer
2652 -fstack-limit-symbol=<name>     Trap if the stack goes past symbol <name>.
2654 fstack-protector
2655 Common Var(flag_stack_protect, 1) Init(-1) Optimization
2656 Use propolice as a stack protection method.
2658 fstack-protector-all
2659 Common RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
2660 Use a stack protection method for every function.
2662 fstack-protector-strong
2663 Common RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
2664 Use a smart stack protection method for certain functions.
2666 fstack-protector-explicit
2667 Common RejectNegative Var(flag_stack_protect, 4) Optimization
2668 Use stack protection method only for functions with the stack_protect attribute.
2670 fstack-usage
2671 Common RejectNegative Var(flag_stack_usage)
2672 Output stack usage information on a per-function basis.
2674 fstrength-reduce
2675 Common Ignore
2676 Does nothing.  Preserved for backward compatibility.
2678 ; Nonzero if we should do (language-dependent) alias analysis.
2679 ; Typically, this analysis will assume that expressions of certain
2680 ; types do not alias expressions of certain other types.  Only used
2681 ; if alias analysis (in general) is enabled.
2682 fstrict-aliasing
2683 Common Var(flag_strict_aliasing) Optimization
2684 Assume strict aliasing rules apply.
2686 fstrict-overflow
2687 Common
2688 Treat signed overflow as undefined.  Negated as -fwrapv -fwrapv-pointer.
2690 fsync-libcalls
2691 Common Var(flag_sync_libcalls) Init(1)
2692 Implement __atomic operations via libcalls to legacy __sync functions.
2694 fsyntax-only
2695 Common Var(flag_syntax_only)
2696 Check for syntax errors, then stop.
2698 ftest-coverage
2699 Common Var(flag_test_coverage)
2700 Create data files needed by \"gcov\".
2702 fthread-jumps
2703 Common Var(flag_thread_jumps) Optimization
2704 Perform jump threading optimizations.
2706 ftime-report
2707 Common Var(time_report)
2708 Report the time taken by each compiler pass.
2710 ftime-report-details
2711 Common Var(time_report_details)
2712 Record times taken by sub-phases separately.
2714 ftls-model=
2715 Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
2716 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model.
2718 Enum
2719 Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
2721 EnumValue
2722 Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
2724 EnumValue
2725 Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
2727 EnumValue
2728 Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
2730 EnumValue
2731 Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
2733 ftoplevel-reorder
2734 Common Var(flag_toplevel_reorder) Init(2) Optimization
2735 Reorder top level functions, variables, and asms.
2737 ftracer
2738 Common Var(flag_tracer) Optimization
2739 Perform superblock formation via tail duplication.
2741 ftrampolines
2742 Common Var(flag_trampolines) Init(0)
2743 For targets that normally need trampolines for nested functions, always
2744 generate them instead of using descriptors.
2746 ; Zero means that floating-point math operations cannot generate a
2747 ; (user-visible) trap.  This is the case, for example, in nonstop
2748 ; IEEE 754 arithmetic.
2749 ftrapping-math
2750 Common Var(flag_trapping_math) Init(1) Optimization SetByCombined
2751 Assume floating-point operations can trap.
2753 ftrapv
2754 Common Var(flag_trapv) Optimization
2755 Trap for signed overflow in addition, subtraction and multiplication.
2757 ftree-ccp
2758 Common Var(flag_tree_ccp) Optimization
2759 Enable SSA-CCP optimization on trees.
2761 ftree-bit-ccp
2762 Common Var(flag_tree_bit_ccp) Optimization
2763 Enable SSA-BIT-CCP optimization on trees.
2765 ftree-store-ccp
2766 Common Ignore
2767 Does nothing.  Preserved for backward compatibility.
2769 ftree-ch
2770 Common Var(flag_tree_ch) Optimization
2771 Enable loop header copying on trees.
2773 ftree-coalesce-inlined-vars
2774 Common Ignore RejectNegative
2775 Does nothing.  Preserved for backward compatibility.
2777 ftree-coalesce-vars
2778 Common Var(flag_tree_coalesce_vars) Optimization
2779 Enable SSA coalescing of user variables.
2781 ftree-copyrename
2782 Common Ignore
2783 Does nothing.  Preserved for backward compatibility.
2785 ftree-copy-prop
2786 Common Var(flag_tree_copy_prop) Optimization
2787 Enable copy propagation on trees.
2789 ftree-store-copy-prop
2790 Common Ignore
2791 Does nothing.  Preserved for backward compatibility.
2793 ftree-cselim
2794 Common Var(flag_tree_cselim) Init(2) Optimization
2795 Transform condition stores into unconditional ones.
2797 ftree-switch-conversion
2798 Common Var(flag_tree_switch_conversion) Optimization
2799 Perform conversions of switch initializations.
2801 ftree-dce
2802 Common Var(flag_tree_dce) Optimization
2803 Enable SSA dead code elimination optimization on trees.
2805 ftree-dominator-opts
2806 Common Var(flag_tree_dom) Optimization
2807 Enable dominator optimizations.
2809 ftree-tail-merge
2810 Common Var(flag_tree_tail_merge) Optimization
2811 Enable tail merging on trees.
2813 ftree-dse
2814 Common Var(flag_tree_dse) Optimization
2815 Enable dead store elimination.
2817 ftree-forwprop
2818 Common Var(flag_tree_forwprop) Init(1) Optimization
2819 Enable forward propagation on trees.
2821 ftree-fre
2822 Common Var(flag_tree_fre) Optimization
2823 Enable Full Redundancy Elimination (FRE) on trees.
2825 foptimize-strlen
2826 Common Var(flag_optimize_strlen) Optimization
2827 Enable string length optimizations on trees.
2829 fisolate-erroneous-paths-dereference
2830 Common Var(flag_isolate_erroneous_paths_dereference) Optimization
2831 Detect paths that trigger erroneous or undefined behavior due to
2832 dereferencing a null pointer.  Isolate those paths from the main control
2833 flow and turn the statement with erroneous or undefined behavior into a trap.
2835 fisolate-erroneous-paths-attribute
2836 Common Var(flag_isolate_erroneous_paths_attribute) Optimization
2837 Detect paths that trigger erroneous or undefined behavior due to a null value
2838 being used in a way forbidden by a returns_nonnull or nonnull
2839 attribute.  Isolate those paths from the main control flow and turn the
2840 statement with erroneous or undefined behavior into a trap.
2842 ftree-loop-distribution
2843 Common Var(flag_tree_loop_distribution) Optimization
2844 Enable loop distribution on trees.
2846 ftree-loop-distribute-patterns
2847 Common Var(flag_tree_loop_distribute_patterns) Optimization
2848 Enable loop distribution for patterns transformed into a library call.
2850 ftree-loop-im
2851 Common Var(flag_tree_loop_im) Init(1) Optimization
2852 Enable loop invariant motion on trees.
2854 ftree-loop-linear
2855 Common Alias(floop-nest-optimize)
2856 Enable loop nest transforms.  Same as -floop-nest-optimize.
2858 ftree-loop-ivcanon
2859 Common Var(flag_tree_loop_ivcanon) Init(1) Optimization
2860 Create canonical induction variables in loops.
2862 ftree-loop-optimize
2863 Common Var(flag_tree_loop_optimize) Init(1) Optimization
2864 Enable loop optimizations on tree level.
2866 ftree-parallelize-loops=
2867 Common Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
2868 -ftree-parallelize-loops=<number>       Enable automatic parallelization of loops.
2870 ftree-phiprop
2871 Common Var(flag_tree_phiprop) Init(1) Optimization
2872 Enable hoisting loads from conditional pointers.
2874 ftree-pre
2875 Common Var(flag_tree_pre) Optimization
2876 Enable SSA-PRE optimization on trees.
2878 ftree-partial-pre
2879 Common Var(flag_tree_partial_pre) Optimization
2880 In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
2882 ftree-pta
2883 Common Var(flag_tree_pta) Optimization
2884 Perform function-local points-to analysis on trees.
2886 ftree-reassoc
2887 Common Var(flag_tree_reassoc) Init(1) Optimization
2888 Enable reassociation on tree level.
2890 ftree-salias
2891 Common Ignore
2892 Does nothing.  Preserved for backward compatibility.
2894 ftree-sink
2895 Common Var(flag_tree_sink) Optimization
2896 Enable SSA code sinking on trees.
2898 ftree-slsr
2899 Common Var(flag_tree_slsr) Optimization
2900 Perform straight-line strength reduction.
2902 ftree-sra
2903 Common Var(flag_tree_sra) Optimization
2904 Perform scalar replacement of aggregates.
2906 ftree-ter
2907 Common Var(flag_tree_ter) Optimization
2908 Replace temporary expressions in the SSA->normal pass.
2910 ftree-lrs
2911 Common Var(flag_tree_live_range_split) Optimization
2912 Perform live range splitting during the SSA->normal pass.
2914 ftree-vrp
2915 Common Var(flag_tree_vrp) Init(0) Optimization
2916 Perform Value Range Propagation on trees.
2918 fsplit-paths
2919 Common Var(flag_split_paths) Init(0) Optimization
2920 Split paths leading to loop backedges.
2922 funconstrained-commons
2923 Common Var(flag_unconstrained_commons) Optimization
2924 Assume common declarations may be overridden with ones with a larger
2925 trailing array.
2927 funit-at-a-time
2928 Common Var(flag_unit_at_a_time) Init(1)
2929 Compile whole compilation unit at a time.
2931 funroll-loops
2932 Common Var(flag_unroll_loops) Optimization
2933 Perform loop unrolling when iteration count is known.
2935 funroll-all-loops
2936 Common Var(flag_unroll_all_loops) Optimization
2937 Perform loop unrolling for all loops.
2939 funroll-completely-grow-size
2940 Undocumented Var(flag_cunroll_grow_size) Optimization
2941 ; Internal undocumented flag, allow size growth during complete unrolling
2943 ; Nonzero means that loop optimizer may assume that the induction variables
2944 ; that control loops do not overflow and that the loops with nontrivial
2945 ; exit condition are not infinite
2946 funsafe-loop-optimizations
2947 Common Ignore
2948 Does nothing.  Preserved for backward compatibility.
2950 fassociative-math
2951 Common Var(flag_associative_math) SetByCombined Optimization
2952 Allow optimization for floating-point arithmetic which may change the
2953 result of the operation due to rounding.
2955 freciprocal-math
2956 Common Var(flag_reciprocal_math) SetByCombined Optimization
2957 Same as -fassociative-math for expressions which include division.
2959 ; Nonzero means that unsafe floating-point math optimizations are allowed
2960 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
2961 ; are allowed to assume that their arguments and results are "normal"
2962 ; (e.g., nonnegative for SQRT).
2963 funsafe-math-optimizations
2964 Common Var(flag_unsafe_math_optimizations) Optimization SetByCombined
2965 Allow math optimizations that may violate IEEE or ISO standards.
2967 funswitch-loops
2968 Common Var(flag_unswitch_loops) Optimization
2969 Perform loop unswitching.
2971 fsplit-loops
2972 Common Var(flag_split_loops) Optimization
2973 Perform loop splitting.
2975 fversion-loops-for-strides
2976 Common Var(flag_version_loops_for_strides) Optimization
2977 Version loops based on whether indices have a stride of one.
2979 funwind-tables
2980 Common Var(flag_unwind_tables) Optimization
2981 Just generate unwind tables for exception handling.
2983 fuse-ld=bfd
2984 Common Driver Negative(fuse-ld=gold)
2985 Use the bfd linker instead of the default linker.
2987 fuse-ld=gold
2988 Common Driver Negative(fuse-ld=bfd)
2989 Use the gold linker instead of the default linker.
2991 fuse-ld=lld
2992 Common Driver Negative(fuse-ld=lld)
2993 Use the lld LLVM linker instead of the default linker.
2995 fuse-linker-plugin
2996 Common Undocumented Var(flag_use_linker_plugin)
2998 ; Positive if we should track variables, negative if we should run
2999 ; the var-tracking pass only to discard debug annotations, zero if
3000 ; we're not to run it.  When flag_var_tracking == 2 (AUTODETECT_VALUE) it
3001 ; will be set according to optimize, debug_info_level and debug_hooks
3002 ; in process_options ().
3003 fvar-tracking
3004 Common Var(flag_var_tracking) Init(2) PerFunction
3005 Perform variable tracking.
3007 ; Positive if we should track variables at assignments, negative if
3008 ; we should run the var-tracking pass only to discard debug
3009 ; annotations.  When flag_var_tracking_assignments ==
3010 ; AUTODETECT_VALUE it will be set according to flag_var_tracking.
3011 fvar-tracking-assignments
3012 Common Var(flag_var_tracking_assignments) Init(2) PerFunction
3013 Perform variable tracking by annotating assignments.
3015 ; Nonzero if we should toggle flag_var_tracking_assignments after
3016 ; processing options and computing its default.  */
3017 fvar-tracking-assignments-toggle
3018 Common Var(flag_var_tracking_assignments_toggle) PerFunction
3019 Toggle -fvar-tracking-assignments.
3021 ; Positive if we should track uninitialized variables, negative if
3022 ; we should run the var-tracking pass only to discard debug
3023 ; annotations.  When flag_var_tracking_uninit == AUTODETECT_VALUE it
3024 ; will be set according to flag_var_tracking.
3025 fvar-tracking-uninit
3026 Common Var(flag_var_tracking_uninit) PerFunction
3027 Perform variable tracking and also tag variables that are uninitialized.
3029 ; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
3030 ftree-vectorize
3031 Common Optimization
3032 Enable vectorization on trees.
3034 ftree-vectorizer-verbose=
3035 Common Joined RejectNegative Ignore
3036 Does nothing.  Preserved for backward compatibility.
3038 ftree-loop-vectorize
3039 Common Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
3040 Enable loop vectorization on trees.
3042 ftree-slp-vectorize
3043 Common Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
3044 Enable basic block vectorization (SLP) on trees.
3046 fvect-cost-model=
3047 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
3048 -fvect-cost-model=[unlimited|dynamic|cheap|very-cheap]  Specifies the cost model for vectorization.
3050 fsimd-cost-model=
3051 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
3052 -fsimd-cost-model=[unlimited|dynamic|cheap|very-cheap]  Specifies the vectorization cost model for code marked with a simd directive.
3054 Enum
3055 Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
3057 EnumValue
3058 Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
3060 EnumValue
3061 Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
3063 EnumValue
3064 Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
3066 EnumValue
3067 Enum(vect_cost_model) String(very-cheap) Value(VECT_COST_MODEL_VERY_CHEAP)
3069 fvect-cost-model
3070 Common Alias(fvect-cost-model=,dynamic,unlimited)
3071 Enables the dynamic vectorizer cost model.  Preserved for backward compatibility.
3073 ftree-vect-loop-version
3074 Common Ignore
3075 Does nothing. Preserved for backward compatibility.
3077 ftree-scev-cprop
3078 Common Var(flag_tree_scev_cprop) Init(1) Optimization
3079 Enable copy propagation of scalar-evolution information.
3081 ; -fverbose-asm causes extra commentary information to be produced in
3082 ; the generated assembly code (to make it more readable).  This option
3083 ; is generally only of use to those who actually need to read the
3084 ; generated assembly code (perhaps while debugging the compiler itself).
3085 ; -fno-verbose-asm, the default, causes the extra information
3086 ; to not be added and is useful when comparing two assembler files.
3087 fverbose-asm
3088 Common Var(flag_verbose_asm)
3089 Add extra commentary to assembler output.
3091 fvisibility=
3092 Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
3093 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility.
3095 Enum
3096 Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
3098 EnumValue
3099 Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
3101 EnumValue
3102 Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
3104 EnumValue
3105 Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
3107 EnumValue
3108 Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
3110 fvtable-verify=
3111 Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
3112 Validate vtable pointers before using them.
3114 Enum
3115 Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
3117 EnumValue
3118 Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
3120 EnumValue
3121 Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
3123 EnumValue
3124 Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
3126 fvtv-counts
3127 Common Var(flag_vtv_counts)
3128 Output vtable verification counters.
3130 fvtv-debug
3131 Common Var(flag_vtv_debug)
3132 Output vtable verification pointer sets information.
3134 fvpt
3135 Common Var(flag_value_profile_transformations) Optimization
3136 Use expression value profiles in optimizations.
3138 fweb
3139 Common Var(flag_web) Init(2) Optimization
3140 Construct webs and split unrelated uses of single variable.
3142 ftree-builtin-call-dce
3143 Common Var(flag_tree_builtin_call_dce) Init(0) Optimization
3144 Enable conditional dead code elimination for builtin calls.
3146 fwhole-program
3147 Common Var(flag_whole_program) Init(0)
3148 Perform whole program optimizations.
3150 fwrapv-pointer
3151 Common Var(flag_wrapv_pointer) Optimization
3152 Assume pointer overflow wraps around.
3154 fwrapv
3155 Common Var(flag_wrapv) Optimization
3156 Assume signed arithmetic overflow wraps around.
3158 fzero-initialized-in-bss
3159 Common Var(flag_zero_initialized_in_bss) Init(1)
3160 Put zero initialized data in the bss section.
3162 fzero-call-used-regs=
3163 Common RejectNegative Joined
3164 Clear call-used registers upon function return.
3167 Common Driver RejectNegative JoinedOrMissing
3168 Generate debug information in default format.
3170 gas-loc-support
3171 Common Driver Var(dwarf2out_as_loc_support) Init(2)
3172 Assume assembler support for (DWARF2+) .loc directives.
3174 gas-locview-support
3175 Common Driver Var(dwarf2out_as_locview_support) Init(2)
3176 Assume assembler support for view in (DWARF2+) .loc directives.
3178 gcoff
3179 Common Driver WarnRemoved
3180 Does nothing.  Preserved for backward compatibility.
3182 gcoff1
3183 Common Driver WarnRemoved
3184 Does nothing.  Preserved for backward compatibility.
3186 gcoff2
3187 Common Driver WarnRemoved
3188 Does nothing.  Preserved for backward compatibility.
3190 gcoff3
3191 Common Driver WarnRemoved
3192 Does nothing.  Preserved for backward compatibility.
3194 gcolumn-info
3195 Common Driver Var(debug_column_info,1) Init(1)
3196 Record DW_AT_decl_column and DW_AT_call_column in DWARF.
3198 ; The CTF generation process feeds off DWARF dies.  This option implicitly
3199 ; updates the debug_info_level to DINFO_LEVEL_NORMAL.
3200 gctf
3201 Common Driver RejectNegative JoinedOrMissing
3202 Generate CTF debug information at default level.
3204 gbtf
3205 Common Driver RejectNegative JoinedOrMissing
3206 Generate BTF debug information at default level.
3208 gdwarf
3209 Common Driver JoinedOrMissing Negative(gdwarf-)
3210 Generate debug information in default version of DWARF format.
3212 gdwarf-
3213 Common Driver Joined UInteger Var(dwarf_version) Init(5) Negative(gstabs)
3214 Generate debug information in DWARF v2 (or later) format.
3216 gdwarf32
3217 Common Driver Var(dwarf_offset_size,4) Init(4) RejectNegative
3218 Use 32-bit DWARF format when emitting DWARF debug information.
3220 gdwarf64
3221 Common Driver Var(dwarf_offset_size,8) RejectNegative
3222 Use 64-bit DWARF format when emitting DWARF debug information.
3224 ggdb
3225 Common Driver JoinedOrMissing
3226 Generate debug information in default extended format.
3228 ginline-points
3229 Common Driver Var(debug_inline_points) Init(2)
3230 Generate extended entry point information for inlined functions.
3232 ginternal-reset-location-views
3233 Common Driver Var(debug_internal_reset_location_views) Init(2)
3234 Compute locview reset points based on insn length estimates.
3236 gno-
3237 RejectNegative Joined Undocumented
3238 ; Catch the gno- prefix, so it doesn't backtrack to g<level>.
3240 gno-pubnames
3241 Common Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
3242 Don't generate DWARF pubnames and pubtypes sections.
3244 gpubnames
3245 Common Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
3246 Generate DWARF pubnames and pubtypes sections.
3248 ggnu-pubnames
3249 Common Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
3250 Generate DWARF pubnames and pubtypes sections with GNU extensions.
3252 grecord-gcc-switches
3253 Common Driver Var(dwarf_record_gcc_switches) Init(1)
3254 Record gcc command line switches in DWARF DW_AT_producer.
3256 gsplit-dwarf
3257 Common Driver Var(dwarf_split_debug_info) Init(0)
3258 Generate debug information in separate .dwo files.
3260 gstabs
3261 Common Driver JoinedOrMissing Negative(gstabs+)
3262 Generate debug information in STABS format.
3264 gstabs+
3265 Common Driver JoinedOrMissing Negative(gvms)
3266 Generate debug information in extended STABS format.
3268 gstatement-frontiers
3269 Common Driver Var(debug_nonbind_markers_p) Init(2)
3270 Emit progressive recommended breakpoint locations.
3272 gstrict-dwarf
3273 Common Driver Var(dwarf_strict) Init(0)
3274 Don't emit DWARF additions beyond selected version.
3276 gdescribe-dies
3277 Common Driver Var(flag_describe_dies) Init(0)
3278 Add description attributes to some DWARF DIEs that have no name attribute.
3280 gtoggle
3281 Common Driver Var(flag_gtoggle)
3282 Toggle debug information generation.
3284 gvariable-location-views
3285 Common Driver Var(debug_variable_location_views, 1) Init(2)
3286 Augment variable location lists with progressive views.
3288 gvariable-location-views=incompat5
3289 Common Driver RejectNegative Var(debug_variable_location_views, -1) Init(2)
3291 gvms
3292 Common Driver JoinedOrMissing Negative(gxcoff)
3293 Generate debug information in VMS format.
3295 gxcoff
3296 Common Driver JoinedOrMissing Negative(gxcoff+)
3297 Generate debug information in XCOFF format.
3299 gxcoff+
3300 Common Driver JoinedOrMissing Negative(gdwarf)
3301 Generate debug information in extended XCOFF format.
3303 Enum
3304 Name(compressed_debug_sections) Type(int)
3306 ; Since -gz= is completely handled in specs, the values aren't used and we
3307 ; assign arbitrary constants.
3308 EnumValue
3309 Enum(compressed_debug_sections) String(none) Value(0)
3311 EnumValue
3312 Enum(compressed_debug_sections) String(zlib) Value(1)
3314 EnumValue
3315 Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
3318 Common Driver
3319 Generate compressed debug sections.
3322 Common Driver RejectNegative Joined Enum(compressed_debug_sections)
3323 -gz=<format>    Generate compressed debug sections in format <format>.
3326 Driver Joined Separate
3328 iplugindir=
3329 Common Joined Var(plugindir_string) Init(0)
3330 -iplugindir=<dir>       Set <dir> to be the default plugin directory.
3332 imultiarch
3333 Common Joined Separate RejectDriver Var(imultiarch) Init(0)
3334 -imultiarch <dir>       Set <dir> to be the multiarch include subdirectory.
3337 Driver Joined Separate
3340 Driver
3342 no-canonical-prefixes
3343 Driver
3345 nodefaultlibs
3346 Driver
3348 nostartfiles
3349 Driver
3351 nolibc
3352 Driver
3354 nostdlib
3355 Driver
3358 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
3359 -o <file>       Place output into <file>.
3362 Common Var(profile_flag)
3363 Enable function profiling.
3365 pass-exit-codes
3366 Driver Var(pass_exit_codes)
3368 pedantic
3369 Common Alias(Wpedantic)
3371 pedantic-errors
3372 Common Var(flag_pedantic_errors)
3373 Like -pedantic but issue them as errors.
3376 Driver
3378 pipe
3379 Driver Var(use_pipes)
3381 print-file-name=
3382 Driver JoinedOrMissing Var(print_file_name)
3384 print-libgcc-file-name
3385 Driver
3387 print-multi-directory
3388 Driver Var(print_multi_directory)
3390 print-multi-lib
3391 Driver Var(print_multi_lib)
3393 print-multi-os-directory
3394 Driver Var(print_multi_os_directory)
3396 print-multiarch
3397 Driver Var(print_multiarch)
3399 print-prog-name=
3400 Driver JoinedOrMissing Var(print_prog_name)
3402 print-search-dirs
3403 Driver Var(print_search_dirs)
3405 print-sysroot
3406 Driver Var(print_sysroot)
3408 print-sysroot-headers-suffix
3409 Driver Var(print_sysroot_headers_suffix)
3411 quiet
3412 Common Var(quiet_flag) RejectDriver
3413 Do not display functions compiled or elapsed time.
3416 Driver
3419 Driver
3421 save-temps
3422 Driver
3424 save-temps=
3425 Driver Joined
3428 Driver
3430 time
3431 Driver Var(report_times)
3433 time=
3434 Driver JoinedOrMissing
3437 Driver Joined Separate
3439 undef
3440 Driver
3441 ; C option, but driver must not handle as "-u ndef".
3444 Common Driver Var(verbose_flag)
3445 Enable verbose output.
3447 version
3448 Common Var(version_flag) RejectDriver
3449 Display the compiler's version.
3452 Common Var(inhibit_warnings)
3453 Suppress warnings.
3455 wrapper
3456 Driver Separate Var(wrapper_string)
3459 Driver Joined Separate
3461 shared
3462 Driver RejectNegative Negative(static-pie)
3463 Create a shared library.
3465 shared-libgcc
3466 Driver
3468 specs
3469 Driver Separate Alias(specs=)
3471 specs=
3472 Driver Joined
3474 static
3475 Driver
3477 static-libgcc
3478 Driver
3480 static-libgfortran
3481 Driver
3482 ; Documented for Fortran, but always accepted by driver.
3484 static-libstdc++
3485 Driver
3487 static-libgo
3488 Driver
3489 ; Documented for Go, but always accepted by driver.
3491 static-libasan
3492 Driver
3494 static-libhwasan
3495 Driver
3497 static-libtsan
3498 Driver
3500 static-liblsan
3501 Driver
3503 static-libubsan
3504 Driver
3506 symbolic
3507 Driver
3509 no-pie
3510 Driver RejectNegative Negative(shared)
3511 Don't create a dynamically linked position independent executable.
3514 Driver RejectNegative Negative(no-pie)
3515 Create a dynamically linked position independent executable.
3517 static-pie
3518 Driver RejectNegative Negative(pie)
3519 Create a static position independent executable.
3522 Driver Joined Separate
3524 fipa-ra
3525 Common Var(flag_ipa_ra) Optimization
3526 Use caller save register across calls if possible.
3528 ; This comment is to ensure we retain the blank line above.