// PR c++/51045 // { dg-options "-Wzero-as-null-pointer-constant" } template struct A { A() { t = new T; } ~A() { delete t; } T* t; }; template struct B { B() { t = new T[1]; } ~B() { delete [] t; } T* t; }; template class Variant { Type t; }; class Op; typedef Variant > vara; typedef Variant > varb; class Op { vara x; varb y; }; int main() { vara a; varb b; }