c/9166: [2003-01-03] C front end's type scoping not right

Neil Booth neil@daikokuya.co.uk
Sat Jan 4 13:36:00 GMT 2003


The following reply was made to PR c/9166; it has been noted by GNATS.

From: Neil Booth <neil@daikokuya.co.uk>
To: "Joseph S. Myers" <jsm28@cam.ac.uk>
Cc: neil@gcc.gnu.org, gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org
Subject: Re: c/9166: [2003-01-03] C front end's type scoping not right
Date: Sat, 4 Jan 2003 13:27:10 +0000

 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.



More information about the Gcc-prs mailing list