This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c/10826: Anonymous union regression between gcc 3.2 and 3.3
- From: bartoldeman at users dot sourceforge dot net
- To: gcc-gnats at gcc dot gnu dot org
- Date: 16 May 2003 19:09:48 -0000
- Subject: c/10826: Anonymous union regression between gcc 3.2 and 3.3
- Reply-to: bartoldeman at users dot sourceforge dot net
>Number: 10826
>Category: c
>Synopsis: Anonymous union regression between gcc 3.2 and 3.3
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: rejects-legal
>Submitter-Id: net
>Arrival-Date: Fri May 16 19:16:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: Bart Oldeman
>Release: 3.3
>Organization:
>Environment:
System: Linux enm-bo-lt 2.4.20 #1 Thu Feb 13 13:39:07 EST 2003 i686 unknown
Architecture: i686
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
>Description:
The following code compiles with gcc 3.0 -- 3.2, but
not with gcc 3.3. That would be fine if it were
documented but it doesn't seem to be the case.
struct {
union type {
int symbol_table_index;
int RVA;
};
short line_number;
} coff_line_num;
int main(void)
{
return coff_line_num.RVA;
}
>How-To-Repeat:
Compile the above using
gcc file.c
struc.c:5: warning: declaration does not declare anything
struc.c: In function `main':
struc.c:11: error: structure has no member named `RVA'
gcc-3.2 is silent.
>Fix:
workaround: remove the tag of the anonymous union.
>Release-Note:
>Audit-Trail:
>Unformatted: