Summary: | bogus 'changes meaning' error? | ||
---|---|---|---|
Product: | gcc | Reporter: | Pawel Sikora <pawel_sikora> |
Component: | c++ | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | CC: | gcc-bugs |
Priority: | P3 | ||
Version: | 4.3.3 | ||
Target Milestone: | --- | ||
Host: | Target: | ||
Build: | Known to work: | ||
Known to fail: | Last reconfirmed: |
Description
Pawel Sikora
2009-01-08 12:22:19 UTC
I suggest filing a problem report with Comeau. EDG accepts both in -strict_ansi mode. (In reply to comment #1) > I suggest filing a problem report with Comeau. EDG accepts both in > -strict_ansi mode. > i've tested it on comeau online to verify g++ behaviour :) Subject: Re: New: bogus 'changes meaning' error? On Jan 8, 2009, at 4:22 AM, "pluto at agmk dot net" <gcc-bugzilla@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 > as mentioned, gcc is correct. *** Bug 85128 has been marked as a duplicate of this bug. *** |