------- Comment #3 from pinskia at gmail dot com  2009-01-08 19:16 -------
Subject: Re:   New: bogus 'changes meaning' error?


On Jan 8, 2009, at 4:22 AM, "pluto at agmk dot net" <gcc-bugzi...@gcc.gnu.org 
 > wrote:

> following code snipet is reducted testcase from external application.
> g++ and comeau online accept/reject source differently.
>
> template < class T >
> struct A
> {
> };
> template < class U >
> struct B
> {
> #if 1
>        typedef A< float > A; // <-- accepted by comeau but...
>        // g++: error: declaration of typedef struct A<float> B<U>::A
>        // g++: error: changes meaning of A from struct A<float>
> #else
>        typedef ::A< float > A; // <-- accepted by g++ but...
>        // comeau: class member typedef may not be redeclared
>        //         typedef ::A< float > A;
>        //                              ^
> #endif
> };

GCC is correct.  This code is invalid but the standard says for this  
case no diagnostic is required so both compilers are correct according  
to the standard. Just that edg could be enchened to error about this  
case.


>
>
>
> -- 
>           Summary: bogus 'changes meaning' error?
>           Product: gcc
>           Version: 4.3.3
>            Status: UNCONFIRMED
>          Severity: normal
>          Priority: P3
>         Component: c++
>        AssignedTo: unassigned at gcc dot gnu dot org
>        ReportedBy: pluto at agmk dot net
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38764
>


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38764

Reply via email to