here is C++ tescase, compile with -O2: (reduced from mozilla's crash in nsAutoCompleteController::ClosePopup()) ------------------------------------------------------------------------------ extern "C" void abort (void);
struct T { virtual void foo (void); }; struct A : T { }; struct C { A *p; C () { p = 0; } operator A* () const { return p; } }; int main (void) { C c; T t; if (c == &t) return 0; if (c) abort (); return 0; } ------------------------------------------------------------------------------ -- Summary: -ftree-vrp produces wrong code Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: wrong-code Severity: critical Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: belyshev at depni dot sinp dot msu dot ru CC: dnovillo at gcc dot gnu dot org,gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22625