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. */ 9typedef __SIZE_TYPE__ size_t; 10size_t strlength (const char * const); 11char foo(); 12 13static const char * const str = "mingo"; 14 15bar() 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} 31