PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / pr31448-2.c
blobad920c9d00e52d1637778f03f4e2a0ca740fe8b3
1 /* PR middle-end/31448, this used to ICE during expand because
2 reduce_to_bit_field_precision was not ready to handle constants. */
4 typedef struct _st {
5 long int iIndex : 24;
6 long int iIndex1 : 24;
7 } st;
8 st *next;
9 void g(void)
11 st *next = 0;
12 int nIndx;
13 const static int constreg[] = { 0,};
14 nIndx = 0;
15 next->iIndex = constreg[nIndx];
17 void f(void)
19 int nIndx;
20 const static long int constreg[] = { 0xFEFEFEFE,};
21 nIndx = 0;
22 next->iIndex = constreg[nIndx];
23 next->iIndex1 = constreg[nIndx];
25 int main(void)
27 st a;
28 next = &a;
29 f();
30 if (next->iIndex != 0xFFFEFEFE)
31 __builtin_abort ();
32 if (next->iIndex1 != 0xFFFEFEFE)
33 __builtin_abort ();
34 return 0;