------- Comment #1 from gdr at integrable-solutions dot net 2005-12-19 22:45
-------
Subject: Re: New: faults typedef redefinition in struct
"baraclese at hotmail dot com" <[EMAIL PROTECTED]> writes:
| +++ This bug was initially created as a clone of Bug #7869 +++
|
| I stumbled over the second issue that the original bug report mentioned. I
| think it was closed prematurely.
| To clarify this a bit I provide my own short example.
| It may be worth noting that comeau online does not produce any errors on this
| code, nor does microsofts c++ compiler that comes with visual studio 8.
That does not make them "right", nor does it turn your invalid code
into valid code.
| struct tag{};
|
| struct A {
| tag t; // *
| typedef int tag;
| };
|
| *omit this declaration and everything is fine for g++
|
| error msg on g++3.4.4:
|
| error: declaration of `typedef int A::tag'
| error: changes meaning of `tag' from `struct tag'
|
| Why would the outer tag declaration conflict with the tag declaration in
scope
| A? This is not an error that I would have expected intuitively which is why
I'd
| like to bring this up again.
The C++ standard says that your program is ill-formed.
-- Gaby
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25497