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