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