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