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  
       4  typedef struct _st {
       5      long int iIndex : 24;
       6      long int iIndex1 : 24;
       7  } st;
       8  st *next;
       9  void 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  }
      17  void f(void)
      18  {
      19      int nIndx;
      20      const static long int constreg[] = { 0xFEFEFEFE,};
      21      nIndx = 0;
      22      next->iIndex = constreg[nIndx];
      23      next->iIndex1 = constreg[nIndx];
      24  }
      25  int 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