gcc/
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / pr31448.c
blob720ba926eaa09a78680082b4a51becfacc42734a
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 int iIndex : 24;
6 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 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;