OSDN Git Service

PR debug/54694
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / pragma-align-2.c
1 /* { dg-do run { target *-*-solaris2.* } } */
2 /* { dg-options "-std=gnu99" } */
3
4 void abort (void);
5
6 #pragma align 1(x1)
7 #pragma align 2(x2)
8 #pragma align 4(x4)
9 #pragma align 8(x8,y8,z8)
10 #pragma align 16(x16)
11 #pragma align 32(x32)
12 #pragma align 64(x64)
13 #pragma align 128(x128)
14
15 #define MACRO 128
16 #define MACRO2(A) A
17
18 #pragma align MACRO(y128)
19 #pragma align MACRO2(MACRO) (z128)
20
21 #pragma align 8(not_defined)
22
23 #pragma align 9(odd_align)      /* { dg-warning "invalid alignment" } */
24 #pragma align 256(high_align)   /* { dg-warning "invalid alignment" } */
25 #pragma align -1(neg_align)     /* { dg-warning "malformed" } */
26 #pragma align bad_align         /* { dg-warning "malformed" } */
27 #pragma align 1(bad_align       /* { dg-warning "malformed" } */
28
29 int x, x1, x2, x4, x8, y8, z8, x16, x32, x64, x128, y128, z128;
30
31 #pragma align 16(x)             /* { dg-warning "must appear before" } */
32
33 int
34 main ()
35 {
36   if (__alignof__ (x4) < 4)
37     abort ();
38
39   if (__alignof__ (x8) < 8)
40     abort ();
41
42   if (__alignof__ (y8) < 8)
43     abort ();
44
45   if (__alignof__ (z8) < 8)
46     abort ();
47
48   if (__alignof__ (x16) < 16)
49     abort ();
50
51   if (__alignof__ (x32) < 32)
52     abort ();
53
54   if (__alignof__ (x64) < 64)
55     abort ();
56
57   if (__alignof__ (x128) < 128)
58     abort ();
59
60   if (__alignof__ (y128) < 128)
61     abort ();
62
63   if (__alignof__ (z128) < 128)
64     abort (); 
65
66   return 0;
67 }