I notice that while compiling with -stdc99 (which asserts flag_isoc99) that
the
compiler issues warnings by default when it detects that a function call
references
a function which has not been previously declared.

Although it is a useful warning, my copy of the C99 spec. seems to indicate
that
such a warning is optional.

My copy of the C99 standard (2nd edition, 1999-12-01)
Says the following in Annex I ("Common Warnings"):

--- begin quote ----

1 An implementation may generate warnings in many situations, none of which
are
specified as part of this International Standard. The following are a few of
the more
common situations.
[...]
— A function is called but no prototype has been supplied (6.5.2.2).

--- end quote ----

There appears to be no requirement for the compiler to issue a warning,
although
does seem to be permitted by the specification.

Also, this behavior is not reflected in the documentation,

http://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Warning-Options.html#Warning-Opt
ions


-Wimplicit-function-declaration
-Werror-implicit-function-declaration
Give a warning (or error) whenever a function is used before being declared.
The form -Wno-error-implicit-function-declaration is not supported. This
warning is enabled by -Wall (as a warning, not an error).

-Wimplicit
Same as -Wimplicit-int and -Wimplicit-function-declaration. This warning is
enabled by -Wall.

The documentaion is technically incorrect, because at the top of the page,
it
states:
"This manual lists only one of the two forms, whichever is not the
default.". However, for C99 the option is enabled by default

Reply via email to