modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/pr86231.c (about)

     1  /* PR tree-optimization/86231 */
     2  
     3  #define ONE ((void *) 1)
     4  #define TWO ((void *) 2)
     5  
     6  __attribute__((noipa)) int
     7  foo (void *p, int x)
     8  {
     9    if (p == ONE) return 0;
    10    if (!p)
    11      p = x ? TWO : ONE;
    12    return p == ONE ? 0 : 1;
    13  }
    14  
    15  int v[8];
    16  
    17  int
    18  main ()
    19  {
    20    if (foo ((void *) 0, 0) != 0
    21        || foo ((void *) 0, 1) != 1
    22        || foo (ONE, 0) != 0
    23        || foo (ONE, 1) != 0
    24        || foo (TWO, 0) != 1
    25        || foo (TWO, 1) != 1
    26        || foo (&v[7], 0) != 1
    27        || foo (&v[7], 1) != 1)
    28      __builtin_abort ();
    29    return 0;
    30  }