1/* PR middle-end/31448, this used to ICE during expand because
2   reduce_to_bit_field_precision was not ready to handle constants. */
3
4typedef struct _st {
5    int iIndex : 24;
6    int iIndex1 : 24;
7} st;
8st *next;
9void g(void)
10{
11    st *next = 0;
12    int nIndx;
13    const static int constreg[] = { 0,};
14    nIndx = 0;
15    next->iIndex = constreg[nIndx];
16}
17void f(void)
18{
19    int nIndx;
20    const static int constreg[] = { 0xFEFEFEFE,};
21    nIndx = 0;
22    next->iIndex = constreg[nIndx];
23    next->iIndex1 = constreg[nIndx];
24}
25int main(void)
26{
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;
35}
36
37