This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: c/9166: [2003-01-03] C front end's type scoping not right
Joseph S. Myers wrote:-
> What makes you think the former prototype is visible at the latter? The
> former declaration has block scope; as the Rationale discusses, there is a
> delibrate compromise in the standard here, where a former block scope
> external declaration can be considered, but need not be. Incompatible
> declarations need only be diagnosed in the same scope (by 6.7#4).
> Declarations refering to the same object or function that are not in the
> same scope merely yield undefined behavior if of incompatible types
> (6.2.7#2).
Fair enough. Obviously I'd never considered the former declaration
visible, it clearly isn't. I'd just not read the consequences of
incompatible declarations closely enough.
I think a pedwarn would be nice, though I suspect it's hard with GCC's
current code.
At least the behaviour is better than EDG and LCC, which always reject the
second declaration as incompatible even when it's identical.
Neil.