1 /* PR tree-optimization/86231 */
2 
3 #define ONE ((void *) 1)
4 #define TWO ((void *) 2)
5 
6 __attribute__((noipa)) int
foo(void * p,int x)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
main()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 }
31