1 /* PR c++/99074 - gcc 8 and above is crashing with dynamic_cast<>() on null
2 pointer with optimization level -O1 and above
4 { dg-options "-O1 -Wall" } */
10 virtual void op() = 0;
13 class Object: public virtual Base { };
15 class AbstractBase: public virtual Base
20 return dynamic_cast<Object*>(this); // { dg-warning "\\\[-Wnonnull" "" { xfail *-*-* } }
24 class MyAbstractClass: public virtual AbstractBase
27 static MyAbstractClass* _nil () { return 0; }
33 MyAbstractClass *my_abs_type = MyAbstractClass::_nil ();
34 AbstractBase *abs_base = my_abs_type;
35 Object *obj = abs_base->_to_object ();
37 __builtin_printf ("object is: %p\n", obj);