modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/pr31448-2.c (about) 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