OSDN Git Service

Latest updates from FSF 4.7 branch
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / xstormy16 / bss_below100 / 22_if1_b100b_bitfield_3.c
1 /* { dg-options { -nostartfiles below100.o -Tbelow100.ld -O2 } } */
2
3 typedef struct
4 {
5   unsigned char b0:1;
6   unsigned char b1:1;
7   unsigned char b2:1;
8   unsigned char b3:1;
9   unsigned char b4:1;
10   unsigned char b5:1;
11   unsigned char b6:1;
12   unsigned char b7:1;
13 } BitField;
14
15 char acDummy[0xf0] __attribute__ ((__BELOW100__));
16 BitField B100A __attribute__ ((__BELOW100__));
17 unsigned char *pA = (unsigned char *) &B100A;
18 BitField B100B __attribute__ ((__BELOW100__));
19 unsigned char *pB = (unsigned char *) &B100B;
20
21 char *
22 Do (void)
23 {
24   if (B100A.b3)
25     {
26       if (B100B.b3)
27         return "Fail";
28       else
29         return "Success";
30     }
31   else
32     return "Fail";
33 }
34
35 int
36 main (void)
37 {
38   *pA = 0xcb;
39   *pB = 0x34;
40   return Do ()[0] == 'F';
41 }
42
43 /* { dg-final { scan-file "22_if1_b100b_bitfield_3.s" "b\[np\] B100A,#3," } } */
44 /* { dg-final { scan-file "22_if1_b100b_bitfield_3.s" "b\[np\] B100B,#3," } } */