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