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