[Bug c/58303] New: C99 union initializers new union members clobber earlier data
darrenrjenkins at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue Sep 3 04:05:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58303
Bug ID: 58303
Summary: C99 union initializers new union members clobber
earlier data
Product: gcc
Version: 4.6.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: darrenrjenkins at gmail dot com
If using C99 initializers on a union, and using different union members.
The later members seem to clobber the previous members data.
I haven't looked at the standards with respect to this, but it seems wrong.
#include <stdio.h>
typedef struct
{
int a;
int b;
} a_t;
typedef struct
{
int c;
int d;
} b_t;
typedef union
{
a_t a;
b_t b;
} c_t;
void main( int argc, char *argv[] )
{
c_t var = { .a.a = 4, .b.d = 7 };
printf( ".a.a = %d .b.d = %d\n", var.a.a, var.b.d );
}
More information about the Gcc-bugs
mailing list