This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

c/10826: Anonymous union regression between gcc 3.2 and 3.3


>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:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]