summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/20020527-1.c
blob: 6f963ed9f78995b3688dc40d6528db2cdc309dc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/* PR c/6660
   Test whether an unnamed field with user defined type - struct or union is
   accepted.  */
/* { dg-do compile } */
/* { dg-options "-fms-extensions" } */

typedef struct {
  unsigned short a;
  unsigned short b;
} __attribute__ ((__packed__)) A;

typedef struct B_ {
  unsigned int c;
  unsigned int d;
} B;

typedef struct C_ {
  B;
  unsigned int e;
  unsigned int f;
} C;

typedef C D;

typedef struct {
  A;
  D;
  struct {
    unsigned short g;
    unsigned short h;
  } __attribute__ ((__packed__));
  union {
    int i;
    long j;
  };
  int k;
} __attribute__ ((__packed__)) E;

E x;

void foo (void)
{
  x.a = 1;
  x.b = 2;
  x.c = 3;
  x.d = 4;
  x.e = 5;
  x.f = 6;
  x.g = 7;
  x.h = 8;
  x.i = 9;
  x.j = 10;
  x.k = 11;
}