/* { dg-do run } */ /* { dg-options "-O2" } */ /* VRP was miscompiling the following as it thought &a->b was a dereference and therfore a was non-null. Reduced from Mozilla by Serge Belyshev . */ extern "C" void abort (void); struct T { int i; } t; struct A : T { int j; } *p = __null; int main (void) { if (p == &t) return 0; if (p) abort (); return 0; }