| @@ -203,28 +203,28 @@ Objective-C and Objective-C++ Dialects}. | | | @@ -203,28 +203,28 @@ Objective-C and Objective-C++ Dialects}. |
203 | -fobjc-exceptions @gol | | 203 | -fobjc-exceptions @gol |
204 | -fobjc-gc @gol | | 204 | -fobjc-gc @gol |
205 | -freplace-objc-classes @gol | | 205 | -freplace-objc-classes @gol |
206 | -fzero-link @gol | | 206 | -fzero-link @gol |
207 | -gen-decls @gol | | 207 | -gen-decls @gol |
208 | -Wassign-intercept @gol | | 208 | -Wassign-intercept @gol |
209 | -Wno-protocol -Wselector @gol | | 209 | -Wno-protocol -Wselector @gol |
210 | -Wstrict-selector-match @gol | | 210 | -Wstrict-selector-match @gol |
211 | -Wundeclared-selector} | | 211 | -Wundeclared-selector} |
212 | | | 212 | |
213 | @item Language Independent Options | | 213 | @item Language Independent Options |
214 | @xref{Language Independent Options,,Options to Control Diagnostic Messages Formatting}. | | 214 | @xref{Language Independent Options,,Options to Control Diagnostic Messages Formatting}. |
215 | @gccoptlist{-fmessage-length=@var{n} @gol | | 215 | @gccoptlist{-fmessage-length=@var{n} @gol |
216 | -fdiagnostics-show-location=@r{[}once@r{|}every-line@r{]}} @gol | | 216 | -fdiagnostics-show-location=@r{[}once@r{|}every-line@r{]} @gol |
217 | -fdiagnostics-show-options | | 217 | -fdiagnostics-show-options} |
218 | | | 218 | |
219 | @item Warning Options | | 219 | @item Warning Options |
220 | @xref{Warning Options,,Options to Request or Suppress Warnings}. | | 220 | @xref{Warning Options,,Options to Request or Suppress Warnings}. |
221 | @gccoptlist{-fsyntax-only -pedantic -pedantic-errors @gol | | 221 | @gccoptlist{-fsyntax-only -pedantic -pedantic-errors @gol |
222 | -w -Wextra -Wall -Waggregate-return -Wno-attributes @gol | | 222 | -w -Wextra -Wall -Waggregate-return -Wno-attributes @gol |
223 | -Wc++-compat -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment @gol | | 223 | -Wc++-compat -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment @gol |
224 | -Wconversion -Wno-deprecated-declarations @gol | | 224 | -Wconversion -Wno-deprecated-declarations @gol |
225 | -Wdisabled-optimization -Wno-div-by-zero -Wno-endif-labels @gol | | 225 | -Wdisabled-optimization -Wno-div-by-zero -Wno-endif-labels @gol |
226 | -Werror -Werror-implicit-function-declaration @gol | | 226 | -Werror -Werror-implicit-function-declaration @gol |
227 | -Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 @gol | | 227 | -Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 @gol |
228 | -Wno-format-extra-args -Wformat-nonliteral @gol | | 228 | -Wno-format-extra-args -Wformat-nonliteral @gol |
229 | -Wformat-security -Wformat-y2k @gol | | 229 | -Wformat-security -Wformat-y2k @gol |
230 | -Wimplicit -Wimplicit-function-declaration -Wimplicit-int @gol | | 230 | -Wimplicit -Wimplicit-function-declaration -Wimplicit-int @gol |
| @@ -2558,31 +2558,31 @@ since, for example, if two functions are | | | @@ -2558,31 +2558,31 @@ since, for example, if two functions are |
2558 | with no sequence point between them, the order in which the functions | | 2558 | with no sequence point between them, the order in which the functions |
2559 | are called is not specified. However, the standards committee have | | 2559 | are called is not specified. However, the standards committee have |
2560 | ruled that function calls do not overlap. | | 2560 | ruled that function calls do not overlap. |
2561 | | | 2561 | |
2562 | It is not specified when between sequence points modifications to the | | 2562 | It is not specified when between sequence points modifications to the |
2563 | values of objects take effect. Programs whose behavior depends on this | | 2563 | values of objects take effect. Programs whose behavior depends on this |
2564 | have undefined behavior; the C standard specifies that ``Between the | | 2564 | have undefined behavior; the C standard specifies that ``Between the |
2565 | previous and next sequence point an object shall have its stored value | | 2565 | previous and next sequence point an object shall have its stored value |
2566 | modified at most once by the evaluation of an expression. Furthermore, | | 2566 | modified at most once by the evaluation of an expression. Furthermore, |
2567 | the prior value shall be read only to determine the value to be | | 2567 | the prior value shall be read only to determine the value to be |
2568 | stored.''. If a program breaks these rules, the results on any | | 2568 | stored.''. If a program breaks these rules, the results on any |
2569 | particular implementation are entirely unpredictable. | | 2569 | particular implementation are entirely unpredictable. |
2570 | | | 2570 | |
2571 | Examples of code with undefined behavior are @code{a = a++;}, @code{a[n] | | 2571 | Examples of code with undefined behavior are @code{a = a++;}, |
2572 | = b[n++]} and @code{a[i++] = i;}. Some more complicated cases are not | | 2572 | @code{a[n] = b[n++]} and @code{a[i++] = i;}. Some more complicated cases |
2573 | diagnosed by this option, and it may give an occasional false positive | | 2573 | are not diagnosed by this option, and it may give an occasional false |
2574 | result, but in general it has been found fairly effective at detecting | | 2574 | positive result, but in general it has been found fairly effective at |
2575 | this sort of problem in programs. | | 2575 | detecting this sort of problem in programs. |
2576 | | | 2576 | |
2577 | The present implementation of this option only works for C programs. A | | 2577 | The present implementation of this option only works for C programs. A |
2578 | future implementation may also work for C++ programs. | | 2578 | future implementation may also work for C++ programs. |
2579 | | | 2579 | |
2580 | The C standard is worded confusingly, therefore there is some debate | | 2580 | The C standard is worded confusingly, therefore there is some debate |
2581 | over the precise meaning of the sequence point rules in subtle cases. | | 2581 | over the precise meaning of the sequence point rules in subtle cases. |
2582 | Links to discussions of the problem, including proposed formal | | 2582 | Links to discussions of the problem, including proposed formal |
2583 | definitions, may be found on the GCC readings page, at | | 2583 | definitions, may be found on the GCC readings page, at |
2584 | @w{@uref{http://gcc.gnu.org/readings.html}}. | | 2584 | @w{@uref{http://gcc.gnu.org/readings.html}}. |
2585 | | | 2585 | |
2586 | This warning is enabled by @option{-Wall}. | | 2586 | This warning is enabled by @option{-Wall}. |
2587 | | | 2587 | |
2588 | @item -Wreturn-type | | 2588 | @item -Wreturn-type |
| @@ -4480,27 +4480,27 @@ the member function name. | | | @@ -4480,27 +4480,27 @@ the member function name. |
4480 | Always pop the arguments to each function call as soon as that function | | 4480 | Always pop the arguments to each function call as soon as that function |
4481 | returns. For machines which must pop arguments after a function call, | | 4481 | returns. For machines which must pop arguments after a function call, |
4482 | the compiler normally lets arguments accumulate on the stack for several | | 4482 | the compiler normally lets arguments accumulate on the stack for several |
4483 | function calls and pops them all at once. | | 4483 | function calls and pops them all at once. |
4484 | | | 4484 | |
4485 | Disabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}. | | 4485 | Disabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}. |
4486 | | | 4486 | |
4487 | @item -fforce-mem | | 4487 | @item -fforce-mem |
4488 | @opindex fforce-mem | | 4488 | @opindex fforce-mem |
4489 | Force memory operands to be copied into registers before doing | | 4489 | Force memory operands to be copied into registers before doing |
4490 | arithmetic on them. This produces better code by making all memory | | 4490 | arithmetic on them. This produces better code by making all memory |
4491 | references potential common subexpressions. When they are not common | | 4491 | references potential common subexpressions. When they are not common |
4492 | subexpressions, instruction combination should eliminate the separate | | 4492 | subexpressions, instruction combination should eliminate the separate |
4493 | register-load. This option is now a nop and will be removed in 4.2. | | 4493 | register-load. This option is now a nop and will be removed in 4.2. |
4494 | | | 4494 | |
4495 | @item -fforce-addr | | 4495 | @item -fforce-addr |
4496 | @opindex fforce-addr | | 4496 | @opindex fforce-addr |
4497 | Force memory address constants to be copied into registers before | | 4497 | Force memory address constants to be copied into registers before |
4498 | doing arithmetic on them. | | 4498 | doing arithmetic on them. |
4499 | | | 4499 | |
4500 | @item -fomit-frame-pointer | | 4500 | @item -fomit-frame-pointer |
4501 | @opindex fomit-frame-pointer | | 4501 | @opindex fomit-frame-pointer |
4502 | Don't keep the frame pointer in a register for functions that | | 4502 | Don't keep the frame pointer in a register for functions that |
4503 | don't need one. This avoids the instructions to save, set up and | | 4503 | don't need one. This avoids the instructions to save, set up and |
4504 | restore frame pointers; it also makes an extra register available | | 4504 | restore frame pointers; it also makes an extra register available |
4505 | in many functions. @strong{It also makes debugging impossible on | | 4505 | in many functions. @strong{It also makes debugging impossible on |
4506 | some machines.} | | 4506 | some machines.} |
| @@ -5039,27 +5039,27 @@ pass operates on both local scalar varia | | | @@ -5039,27 +5039,27 @@ pass operates on both local scalar varia |
5039 | loads (global variables, structures, arrays, etc). This flag is | | 5039 | loads (global variables, structures, arrays, etc). This flag is |
5040 | enabled by default at @option{-O2} and higher. | | 5040 | enabled by default at @option{-O2} and higher. |
5041 | | | 5041 | |
5042 | @item -ftree-dce | | 5042 | @item -ftree-dce |
5043 | @opindex ftree-dce | | 5043 | @opindex ftree-dce |
5044 | Perform dead code elimination (DCE) on trees. This flag is enabled by | | 5044 | Perform dead code elimination (DCE) on trees. This flag is enabled by |
5045 | default at @option{-O} and higher. | | 5045 | default at @option{-O} and higher. |
5046 | | | 5046 | |
5047 | @item -ftree-dominator-opts | | 5047 | @item -ftree-dominator-opts |
5048 | @opindex ftree-dominator-opts | | 5048 | @opindex ftree-dominator-opts |
5049 | Perform a variety of simple scalar cleanups (constant/copy | | 5049 | Perform a variety of simple scalar cleanups (constant/copy |
5050 | propagation, redundancy elimination, range propagation and expression | | 5050 | propagation, redundancy elimination, range propagation and expression |
5051 | simplification) based on a dominator tree traversal. This also | | 5051 | simplification) based on a dominator tree traversal. This also |
5052 | performs jump threading (to reduce jumps to jumps). This flag is | | 5052 | performs jump threading (to reduce jumps to jumps). This flag is |
5053 | enabled by default at @option{-O} and higher. | | 5053 | enabled by default at @option{-O} and higher. |
5054 | | | 5054 | |
5055 | @item -ftree-ch | | 5055 | @item -ftree-ch |
5056 | @opindex ftree-ch | | 5056 | @opindex ftree-ch |
5057 | Perform loop header copying on trees. This is beneficial since it increases | | 5057 | Perform loop header copying on trees. This is beneficial since it increases |
5058 | effectiveness of code motion optimizations. It also saves one jump. This flag | | 5058 | effectiveness of code motion optimizations. It also saves one jump. This flag |
5059 | is enabled by default at @option{-O} and higher. It is not enabled | | 5059 | is enabled by default at @option{-O} and higher. It is not enabled |
5060 | for @option{-Os}, since it usually increases code size. | | 5060 | for @option{-Os}, since it usually increases code size. |
5061 | | | 5061 | |
5062 | @item -ftree-loop-optimize | | 5062 | @item -ftree-loop-optimize |
5063 | @opindex ftree-loop-optimize | | 5063 | @opindex ftree-loop-optimize |
5064 | Perform loop optimizations on trees. This flag is enabled by default | | 5064 | Perform loop optimizations on trees. This flag is enabled by default |
5065 | at @option{-O} and higher. | | 5065 | at @option{-O} and higher. |
| @@ -6045,27 +6045,27 @@ threshold (in percent). | | | @@ -6045,27 +6045,27 @@ threshold (in percent). |
6045 | Stop forward growth if the best edge do have probability lower than this | | 6045 | Stop forward growth if the best edge do have probability lower than this |
6046 | threshold. | | 6046 | threshold. |
6047 | | | 6047 | |
6048 | Similarly to @option{tracer-dynamic-coverage} two values are present, one for | | 6048 | Similarly to @option{tracer-dynamic-coverage} two values are present, one for |
6049 | compilation for profile feedback and one for compilation without. The value | | 6049 | compilation for profile feedback and one for compilation without. The value |
6050 | for compilation with profile feedback needs to be more conservative (higher) in | | 6050 | for compilation with profile feedback needs to be more conservative (higher) in |
6051 | order to make tracer effective. | | 6051 | order to make tracer effective. |
6052 | | | 6052 | |
6053 | @item max-cse-path-length | | 6053 | @item max-cse-path-length |
6054 | | | 6054 | |
6055 | Maximum number of basic blocks on path that cse considers. The default is 10. | | 6055 | Maximum number of basic blocks on path that cse considers. The default is 10. |
6056 | | | 6056 | |
6057 | @item max-cse-insns | | 6057 | @item max-cse-insns |
6058 | The maximum instructions CSE process before flushing. The default is 1000. | | 6058 | The maximum instructions CSE process before flushing. The default is 1000. |
6059 | | | 6059 | |
6060 | @item global-var-threshold | | 6060 | @item global-var-threshold |
6061 | | | 6061 | |
6062 | Counts the number of function calls (@var{n}) and the number of | | 6062 | Counts the number of function calls (@var{n}) and the number of |
6063 | call-clobbered variables (@var{v}). If @var{n}x@var{v} is larger than this limit, a | | 6063 | call-clobbered variables (@var{v}). If @var{n}x@var{v} is larger than this limit, a |
6064 | single artificial variable will be created to represent all the | | 6064 | single artificial variable will be created to represent all the |
6065 | call-clobbered variables at function call sites. This artificial | | 6065 | call-clobbered variables at function call sites. This artificial |
6066 | variable will then be made to alias every call-clobbered variable. | | 6066 | variable will then be made to alias every call-clobbered variable. |
6067 | (done as @code{int * size_t} on the host machine; beware overflow). | | 6067 | (done as @code{int * size_t} on the host machine; beware overflow). |
6068 | | | 6068 | |
6069 | @item max-aliased-vops | | 6069 | @item max-aliased-vops |
6070 | | | 6070 | |
6071 | Maximum number of virtual operands allowed to represent aliases | | 6071 | Maximum number of virtual operands allowed to represent aliases |
| @@ -6362,28 +6362,28 @@ library subroutines. (For example, @sam | | | @@ -6362,28 +6362,28 @@ library subroutines. (For example, @sam |
6362 | constructors will be called; @pxref{Collect2,,@code{collect2}, gccint, | | 6362 | constructors will be called; @pxref{Collect2,,@code{collect2}, gccint, |
6363 | GNU Compiler Collection (GCC) Internals}.) | | 6363 | GNU Compiler Collection (GCC) Internals}.) |
6364 | | | 6364 | |
6365 | @item -pie | | 6365 | @item -pie |
6366 | @opindex pie | | 6366 | @opindex pie |
6367 | Produce a position independent executable on targets which support it. | | 6367 | Produce a position independent executable on targets which support it. |
6368 | For predictable results, you must also specify the same set of options | | 6368 | For predictable results, you must also specify the same set of options |
6369 | that were used to generate code (@option{-fpie}, @option{-fPIE}, | | 6369 | that were used to generate code (@option{-fpie}, @option{-fPIE}, |
6370 | or model suboptions) when you specify this option. | | 6370 | or model suboptions) when you specify this option. |
6371 | | | 6371 | |
6372 | @item -rdynamic | | 6372 | @item -rdynamic |
6373 | @opindex rdynamic | | 6373 | @opindex rdynamic |
6374 | Pass the flag @option{-export-dynamic} to the ELF linker, on targets | | 6374 | Pass the flag @option{-export-dynamic} to the ELF linker, on targets |
6375 | that support it. This instructs the linker to add all symbols, not | | 6375 | that support it. This instructs the linker to add all symbols, not |
6376 | only used ones, to the dynamic symbol table. This option is needed | | 6376 | only used ones, to the dynamic symbol table. This option is needed |
6377 | for some uses of @code{dlopen} or to allow obtaining backtraces | | 6377 | for some uses of @code{dlopen} or to allow obtaining backtraces |
6378 | from within a program. | | 6378 | from within a program. |
6379 | | | 6379 | |
6380 | @item -s | | 6380 | @item -s |
6381 | @opindex s | | 6381 | @opindex s |
6382 | Remove all symbol table and relocation information from the executable. | | 6382 | Remove all symbol table and relocation information from the executable. |
6383 | | | 6383 | |
6384 | @item -static | | 6384 | @item -static |
6385 | @opindex static | | 6385 | @opindex static |
6386 | On systems that support dynamic linking, this prevents linking with the shared | | 6386 | On systems that support dynamic linking, this prevents linking with the shared |
6387 | libraries. On other systems, this option has no effect. | | 6387 | libraries. On other systems, this option has no effect. |
6388 | | | 6388 | |
6389 | @item -shared | | 6389 | @item -shared |
| @@ -7858,32 +7858,32 @@ Like @option{-sim}, but pass linker opti | | | @@ -7858,32 +7858,32 @@ Like @option{-sim}, but pass linker opti |
7858 | 0x40000000 and zero-initialized data at 0x80000000. | | 7858 | 0x40000000 and zero-initialized data at 0x80000000. |
7859 | @end table | | 7859 | @end table |
7860 | | | 7860 | |
7861 | @node CRX Options | | 7861 | @node CRX Options |
7862 | @subsection CRX Options | | 7862 | @subsection CRX Options |
7863 | @cindex CRX Options | | 7863 | @cindex CRX Options |
7864 | | | 7864 | |
7865 | These options are defined specifically for the CRX ports. | | 7865 | These options are defined specifically for the CRX ports. |
7866 | | | 7866 | |
7867 | @table @gcctabopt | | 7867 | @table @gcctabopt |
7868 | | | 7868 | |
7869 | @item -mmac | | 7869 | @item -mmac |
7870 | @opindex mmac | | 7870 | @opindex mmac |
7871 | Enable the use of multiply-accumulate instructions. Disabled by default. | | 7871 | Enable the use of multiply-accumulate instructions. Disabled by default. |
7872 | | | 7872 | |
7873 | @item -mpush-args | | 7873 | @item -mpush-args |
7874 | @opindex mpush-args | | 7874 | @opindex mpush-args |
7875 | Push instructions will be used to pass outgoing arguments when functions | | 7875 | Push instructions will be used to pass outgoing arguments when functions |
7876 | are called. Enabled by default. | | 7876 | are called. Enabled by default. |
7877 | @end table | | 7877 | @end table |
7878 | | | 7878 | |
7879 | @node Darwin Options | | 7879 | @node Darwin Options |
7880 | @subsection Darwin Options | | 7880 | @subsection Darwin Options |
7881 | @cindex Darwin options | | 7881 | @cindex Darwin options |
7882 | | | 7882 | |
7883 | These options are defined for all architectures running the Darwin operating | | 7883 | These options are defined for all architectures running the Darwin operating |
7884 | system. | | 7884 | system. |
7885 | | | 7885 | |
7886 | FSF GCC on Darwin does not create ``fat'' object files; it will create | | 7886 | FSF GCC on Darwin does not create ``fat'' object files; it will create |
7887 | an object file for the single architecture that it was built to | | 7887 | an object file for the single architecture that it was built to |
7888 | target. Apple's GCC on Darwin does create ``fat'' files if multiple | | 7888 | target. Apple's GCC on Darwin does create ``fat'' files if multiple |
7889 | @option{-arch} options are used; it does so by running the compiler or | | 7889 | @option{-arch} options are used; it does so by running the compiler or |
| @@ -11645,29 +11645,29 @@ These are the @samp{-m} options defined | | | @@ -11645,29 +11645,29 @@ These are the @samp{-m} options defined |
11645 | @itemx -msoft-float | | 11645 | @itemx -msoft-float |
11646 | @opindex mhard-float | | 11646 | @opindex mhard-float |
11647 | @opindex msoft-float | | 11647 | @opindex msoft-float |
11648 | Use (do not use) the hardware floating-point instructions and registers | | 11648 | Use (do not use) the hardware floating-point instructions and registers |
11649 | for floating-point operations. When @option{-msoft-float} is specified, | | 11649 | for floating-point operations. When @option{-msoft-float} is specified, |
11650 | functions in @file{libgcc.a} will be used to perform floating-point | | 11650 | functions in @file{libgcc.a} will be used to perform floating-point |
11651 | operations. When @option{-mhard-float} is specified, the compiler | | 11651 | operations. When @option{-mhard-float} is specified, the compiler |
11652 | generates IEEE floating-point instructions. This is the default. | | 11652 | generates IEEE floating-point instructions. This is the default. |
11653 | | | 11653 | |
11654 | @item -mlong-double-64 | | 11654 | @item -mlong-double-64 |
11655 | @itemx -mlong-double-128 | | 11655 | @itemx -mlong-double-128 |
11656 | @opindex mlong-double-64 | | 11656 | @opindex mlong-double-64 |
11657 | @opindex mlong-double-128 | | 11657 | @opindex mlong-double-128 |
11658 | These switches control the size of @code{long double} type. A size | | 11658 | These switches control the size of @code{long double} type. A size |
11659 | of 64bit makes the @code{long double} type equivalent to the @code{double} | | 11659 | of 64bit makes the @code{long double} type equivalent to the @code{double} |
11660 | type. This is the default. | | 11660 | type. This is the default. |
11661 | | | 11661 | |
11662 | @item -mbackchain | | 11662 | @item -mbackchain |
11663 | @itemx -mno-backchain | | 11663 | @itemx -mno-backchain |
11664 | @opindex mbackchain | | 11664 | @opindex mbackchain |
11665 | @opindex mno-backchain | | 11665 | @opindex mno-backchain |
11666 | Store (do not store) the address of the caller's frame as backchain pointer | | 11666 | Store (do not store) the address of the caller's frame as backchain pointer |
11667 | into the callee's stack frame. | | 11667 | into the callee's stack frame. |
11668 | A backchain may be needed to allow debugging using tools that do not understand | | 11668 | A backchain may be needed to allow debugging using tools that do not understand |
11669 | DWARF-2 call frame information. | | 11669 | DWARF-2 call frame information. |
11670 | When @option{-mno-packed-stack} is in effect, the backchain pointer is stored | | 11670 | When @option{-mno-packed-stack} is in effect, the backchain pointer is stored |
11671 | at the bottom of the stack frame; when @option{-mpacked-stack} is in effect, | | 11671 | at the bottom of the stack frame; when @option{-mpacked-stack} is in effect, |
11672 | the backchain is placed into the topmost word of the 96/160 byte register | | 11672 | the backchain is placed into the topmost word of the 96/160 byte register |
11673 | save area. | | 11673 | save area. |