1 /* { dg-do run } */ 2 /* { dg-options "-O2" } */ 3 4 /* VRP was miscompiling the following as it thought &a->b was a dereference 5 and therfore a was non-null. 6 Reduced from Mozilla by Serge Belyshev <belyshev@depni.sinp.msu.ru>. */ 7 8 extern "C" void abort (void); 9 struct T { int i; } t; 10 struct A : T { int j; } *p = __null; 11 main(void)12int main (void) 13 { 14 if (p == &t) 15 return 0; 16 if (p) 17 abort (); 18 return 0; 19 } 20 21