Regression in 4.0 (sort of)
Dale Johannesen
dalej@apple.com
Mon Dec 13 03:53:00 GMT 2004
Consider the nonstandard C program
main() {
foo();
}
void foo() {
}
Previous versions of gcc accepted this with a warning; 4.0 gives an
error.
This appears to date to Zack's rewrite of duplicate_decls early this
year.
Naturally, this is causing some programs not to compile any more.
Geoff thinks this may be unintentional, and certainly it doesn't seem
that
any bugs that would actually cause anything to break would slip through
if we treated it as a warning. Is this an intentional change?
The following exception is already made for a different, but quite
similar, case.
/* Permit void foo (...) to match int foo (...) if the latter is
the definition and implicit int was used. See
c-torture/compile/920625-2.c. */
More information about the Gcc
mailing list