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  }