2 // { dg-do compile { target c++20 } }
3 // { dg-additional-options "-fdelete-null-pointer-checks" }
6 constexpr A () : a (0) {}
7 constexpr virtual int foo () { return 1 + a * 4; }
12 constexpr B () : b (0) {}
13 constexpr virtual int foo () { return 0 + b * 4; }
20 A *a = new B (); // { dg-message "allocated here" }
23 int r = a->foo (); // { dg-error "constant expression" }
27 constexpr auto a = foo (); // { dg-message "in .constexpr. expansion" }