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