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