modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/20030405-1.c (about) 1 /* When compiled with -pedantic, this program will cause an ICE when the 2 constant propagator tries to set the value of *str to UNDEFINED. 3 4 This happens because *str is erroneously considered as a store alias. 5 The aliasing code is then making *str an alias leader for its alias set 6 and when the PHI node at the end of the while() is visited the first 7 time, CCP will try to assign it a value of UNDEFINED, but the default 8 value for *str is a constant. */ 9 typedef __SIZE_TYPE__ size_t; 10 size_t strlength (const char * const); 11 char foo(); 12 13 static const char * const str = "mingo"; 14 15 bar() 16 { 17 size_t c; 18 char *x; 19 20 c = strlength (str); 21 while (c < 10) 22 { 23 if (c > 5) 24 *x = foo (); 25 if (*x < 'a') 26 break; 27 } 28 29 return *x == '3'; 30 }