I'm getting user reports of problems compiling constructs like the following on 
3.4.2. I develop on 3.4.0 which is happy with it.

class foo {
const foo* foo;
};

My understanding of the standard was that the new name in a declaration comes 
into scope at the position of the identifier, so there is no ambiguity in the 
two uses of "foo" in the pointer member declaration. This seems to be what 3.4.0 
does. Users report messages like:

/home/art/dev/ootbc/common/include/powerset.hh:289: error: declaration of 
`const powerset<E, alloc>*powerset<E, alloc>::iterator::powerset'
/home/art/dev/ootbc/common/include/powerset.hh:134: error: changes meaning of 
`powerset' from `class powerset<E, alloc>'

for similar constructs in 3.4.2.

I tried this on Comeau, and it may gave broken their compiler: the online system 
reports "compilation failed" but does *not* produce an actual error message.

Does this reflect a bug in 3.4.2 or a fix of 3.4.0?

Ivan

-- 
           Summary: version drift 3.4.0->3.4.2?
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: igodard at pacbell dot net
                CC: gcc-bugs at gcc dot gnu dot org


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

Reply via email to