Add -fdelete-null-pointer-checks to more new C++ testcases.
[gcc.git] / gcc / testsuite / g++.dg / cpp2a / constexpr-new12.C
1 // PR c++/93633
2 // { dg-do compile { target c++2a } }
3 // { dg-additional-options "-fdelete-null-pointer-checks" }
4
5 struct A {
6 constexpr A () : a (0) {}
7 constexpr virtual int foo () { return 1 + a * 4; }
8 int a;
9 };
10
11 struct B : A {
12 constexpr B () : b (0) {}
13 constexpr virtual int foo () { return 0 + b * 4; }
14 int b;
15 };
16
17 constexpr int
18 foo ()
19 {
20 A *a = new B ();
21 a->a = 4;
22 delete a;
23 int r = a->foo ();
24 return r;
25 }
26
27 constexpr auto a = foo (); // { dg-error "is not a constant expression" }