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