Warning Messages and Error Messages#
The GNU compiler can produce two kinds of diagnostics: errors and warnings. Each kind has a different purpose:
Errors report problems that make it impossible to compile your program. GCC reports errors with the source file name and line number where the problem is apparent.
Warnings report other unusual conditions in your code that may indicate a problem, although compilation can (and does) proceed. Warning messages also report the source file name and line number, but include the text
warning:
to distinguish them from error messages.
Warnings may indicate danger points where you should check to make sure
that your program really does what you intend; or the use of obsolete
features; or the use of nonstandard features of GNU C or C++. Many
warnings are issued only if you ask for them, with one of the -W
options (for instance, -Wall
requests a variety of useful
warnings).
GCC always tries to compile your program if possible; it never
gratuitously rejects a program whose meaning is clear merely because
(for instance) it fails to conform to a standard. In some cases,
however, the C and C++ standards specify that certain extensions are
forbidden, and a diagnostic must be issued by a conforming
compiler. The -pedantic
option tells GCC to issue warnings in
such cases; -pedantic-errors
says to make them errors instead.
This does not mean that all non-ISO constructs get warnings
or errors.
See Options to Request or Suppress Warnings, for more detail on these and related command-line options.