summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/pr53037-3.c
blob: c9b0efd187420638ca4c1f087ae83e02aa474470 (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
/* PR c/53037.  */
/* { dg-do compile } */
/* { dg-options "-O0 -Wall" } */
/* { dg-require-effective-target int32 } */

struct __attribute__ ((aligned (8))) S8 { char a[8]; };
struct __attribute__ ((packed)) S1 {
  struct S8 s8;
}; /* { dg-warning "alignment 1 of 'struct S1' is less than 8" } */

struct __attribute__ ((packed, aligned (8))) S2 {
  struct S8 s8;
};

struct __attribute__ ((packed, aligned (8))) S3 {
  int i1;
  struct S8 s8; /* { dg-warning "'s8' offset 4 in 'struct S3' isn't aligned to 8" } */
};

struct __attribute__ ((packed, aligned (8))) S4 {
  int i1;
  int i2;
  struct S8 s8;
};

struct __attribute__ ((packed)) S5 {
   long long ll;
};

union __attribute__ ((packed)) U1 {
  int i1;
  struct S8 s8;
}; /* { dg-warning "alignment 1 of 'union U1' is less than 8" } */

union __attribute__ ((packed, aligned (8))) U2 {
  int i1;
  struct S8 s8;
};