Daily bump.
[gcc.git] / gcc / testsuite / g++.dg / warn / Wnonnull11.C
blob5f1b69d9a41326d1c81e554f016f2db675375cb6
1 /* PR c++/99074 - gcc 8 and above is crashing with dynamic_cast<>() on null
2    pointer with optimization level -O1 and above
3    { dg-do run }
4    { dg-options "-O1 -Wall" } */
6 class Base
8 public:
9   virtual ~Base() {}
10   virtual void op() = 0;
13 class Object: public virtual Base { };
15 class AbstractBase: public virtual Base
17 public:
18   Object* _to_object ()
19   {
20     return dynamic_cast<Object*>(this);   // { dg-warning "\\\[-Wnonnull" "" { xfail *-*-* } }
21   }
24 class MyAbstractClass: public virtual AbstractBase
26 public:
27   static MyAbstractClass* _nil () { return 0; }
31 int main ()
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);
39   return 0;