| /* { dg-options { -nostartfiles below100.o -Tbelow100.ld -O2 } } */ |
| /* { dg-final { scan-assembler "b\[np\] B100A,#7," } } */ |
| /* { dg-final { scan-assembler "b\[np\] B100B,#7," } } */ |
| |
| typedef struct |
| { |
| unsigned char b0:1; |
| unsigned char b1:1; |
| unsigned char b2:1; |
| unsigned char b3:1; |
| unsigned char b4:1; |
| unsigned char b5:1; |
| unsigned char b6:1; |
| unsigned char b7:1; |
| } BitField; |
| |
| char acDummy[0xf0] __attribute__ ((__BELOW100__)); |
| BitField B100A __attribute__ ((__BELOW100__)) = |
| { |
| 0, 0, 1, 0, 1, 1, 0, 0}; |
| unsigned char *pA = (unsigned char *) &B100A; |
| BitField B100B __attribute__ ((__BELOW100__)) = |
| { |
| 1, 1, 0, 1, 0, 0, 1, 1}; |
| unsigned char *pB = (unsigned char *) &B100B; |
| |
| char * |
| Do (void) |
| { |
| if (!B100A.b7) |
| { |
| if (!B100B.b7) |
| return "Fail"; |
| else |
| return "Success"; |
| } |
| else |
| return "Fail"; |
| } |
| |
| int |
| main (void) |
| { |
| return Do ()[0] == 'F'; |
| } |