1 static int ref(void)
2 {
3   union {
4     char c[5];
5     int i;
6   } u;
7 
8   __builtin_memset (&u, 0, sizeof(u));
9   u.c[0] = 1;
10   u.c[1] = 2;
11   u.c[2] = 3;
12   u.c[3] = 4;
13 
14   return u.i;
15 }
16 
17 #define MAX(a,b)  (a < b ? b : a)
18 
19 static int test(void)
20 {
21   char c[MAX(5, sizeof(int))] __attribute__((aligned)) = { 1, 2, 3, 4 };
22   return *(int *)c;
23 }
24 
25 int main()
26 {
27   int a = test();
28   int b = ref();
29   if (a != b)
30     abort ();
31   return 0;
32 }
33