[Bug c++/10930] New: g++-3.3 should warn about class/struct equivalence
thor@math.tu-berlin.de
gcc-bugzilla@gcc.gnu.org
Thu May 22 11:35:00 GMT 2003
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10930
Summary: g++-3.3 should warn about class/struct equivalence
Product: gcc
Version: 3.3
Status: UNCONFIRMED
Severity: enhancement
Priority: P2
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: thor@math.tu-berlin.de
CC: gcc-bugs@gcc.gnu.org
GCC build triplet: i386-pc-linux-gnu
GCC host triplet: i386-pc-linux-gnu
GCC target triplet: i386-pc-linux-gnu
g++-3.3 should warn about an object declared as a class that is later on
used as a "struct". This would simplify the generation of portable code
as at least one other popular compiler will generate warnings for this
case that could be easily avoided by this additional g++ warning. This would
make life simpler for those that have to support several platforms. This issue
is not whether the requested warning is "useful" as a C++ warning.
Besides, implementation seems to be simple for me.
Save the following code as "foo.cpp"
/* snip */
class A {
int x;
};
int main(int,char)
{
struct A a;
return 0;
}
/* snip */
And compile with
$ g++-3.3 -Wall -pedantic foo.cpp
The resulting code works. (-; It would be nice if g++ could generate a
warning (e.g. by passing a -Wstruct-class-equivalence) that "class A" has been
used as "struct A a;" in main(), instead of "class A a;" or rather "A a;".
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
More information about the Gcc-bugs
mailing list