73 lines
596 B
C
73 lines
596 B
C
/* Test for anonymous structures and unions in C11. */
|
|
/* { dg-do compile } */
|
|
/* { dg-options "-std=c11 -pedantic-errors" } */
|
|
|
|
#include <stddef.h>
|
|
|
|
struct s1
|
|
{
|
|
int a;
|
|
union
|
|
{
|
|
int i;
|
|
};
|
|
struct
|
|
{
|
|
int b;
|
|
};
|
|
};
|
|
|
|
union u1
|
|
{
|
|
int b;
|
|
struct
|
|
{
|
|
int i;
|
|
};
|
|
union
|
|
{
|
|
int c;
|
|
};
|
|
};
|
|
|
|
struct s2
|
|
{
|
|
struct
|
|
{
|
|
int a;
|
|
};
|
|
};
|
|
|
|
struct s3
|
|
{
|
|
union
|
|
{
|
|
int i;
|
|
};
|
|
};
|
|
|
|
struct s4
|
|
{
|
|
struct
|
|
{
|
|
int i;
|
|
};
|
|
int a[];
|
|
};
|
|
|
|
struct s1 x =
|
|
{
|
|
.b = 1,
|
|
.i = 2,
|
|
.a = 3
|
|
};
|
|
|
|
int o = offsetof (struct s1, i);
|
|
|
|
void
|
|
f (void)
|
|
{
|
|
x.i = 3;
|
|
(&x)->i = 4;
|
|
}
|