-->

Previous | Table of Contents | Next

Page 183

For each subprogram to be run, the compiler driver first tries the _B prefix, if any. If that name is not found, or if _B was not specified, the driver tries two standard prefixes, which are /usr/lib/gcc/ and /usr/local/lib/gcc-lib/. If neither of those results in a filename that is found, the compiler driver searches for the unmodified program name, using the directories specified in your PATH environment variable.
The runtime support file libgcc.a is also searched for using the _B prefix, if needed. If it is not found there, the two standard prefixes (preceding paragraph) are tried, and that is all. The file is left out of the link if it is not found by those means. Most of the time, on most machines, libgcc.a is not actually necessary.
You can get a similar result from the environment variable GCC_EXEC_PREFIX; if it is defined, its value is used as a prefix in the same way. If both the _B option and the GCC_EXEC_PREFIX variable are present, the _B option is used first and the environment variable value second.

WARNING OPTIONS

Warnings are diagnostic messages that report constructions that are not inherently erroneous but are risky or suggest there may have been an error.

These options control the amount and kinds of warnings produced by GNU CC:

_fsyntax_only Check the code for syntax errors, but don't emit any output.
_w Inhibit all warning messages.
_Wno_import Inhibit warning messages about the use of #import.
_pedantic Issue all the warnings demanded by strict ANSI standard C; reject all programs that use forbidden extensions.
Valid ANSI standard C programs should compile properly with or without this option (though a rare few will require _ansi). However, without this option, certain GNU extensions and traditional C features are supported as well. With this option, they are rejected. There is no reason to use this option; it exists only to satisfy pedants.
_pedantic does not cause warning messages for use of the alternate keywords whose names begin and end with `__'. Pedantic warnings are also disabled in the expression that follows extension. However, only system header files should use these escape routes; application programs should avoid them.
_pedantic_errors Like _pedantic, except that errors are produced rather than warnings.
_W Print extra warning messages for these events:
A nonvolatile automatic variable might be changed by a call to longjmp. These warnings are possible only in optimizing compilation. The compiler sees only the calls to setjmp. It cannot know where longjmp will be called; in fact, a signal handler could call it at any point in the code. As a result, you may get a warning even when there is in fact no problem because longjmp cannot in fact be called at the place which would cause a problem.
A function can return either with or without a value. (Falling off the end of the function body is considered returning without a value.) For example, this function would evoke such a warning:

foo (a)

{

if (a > 0)

return a;

}

Spurious warnings can occur because GNU CC does not realize that certain functions (including abort and longjmp) will never return.
An expression-statement or the left side of a comma expression contains no side effects. To suppress the warning, cast the unused expression to void. For example, an expression such as x[i,j] will cause a warning, but x[(void)i,j] will not.
An unsigned value is compared against zero with > or <=.

Previous | Table of Contents | Next