Dodji Seketeli wrote: > That, and [dcl.typedef]/6 says: > > In a given scope, a typedef specifier shall not be used to redefine > the name of any type declared in that scope to refer to a different > type. > > So, I tend to think that GCC is right here.
Right *where*? In case of the snippet provided by Ulf -- yes, obviously. In my case there is no "that scope", i.e. I redefine the type "super" defined in the *surrounding* scope, not in the very same, as Ulf did. It is exactly the same situation as: { int i; float i; } and: {int i; { float i;} } Best regards, Piotr