Contents|Index|Previous|Next

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. GNU CC reports errors with the source filename 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 filename 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). GNU CC 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 GNU CC to issue warnings in such cases; ‘-pedantic-errors’ says to make them errors instead. This does not mean that all non-ANSI constructs get warnings or errors. See Options to Request or Suppress Warnings for more detail on these and related command-line options.