| // PR c++/91369 | |
| // { dg-do compile { target c++20 } } | |
| // { dg-additional-options "-fdelete-null-pointer-checks" } | |
| struct S { | |
| constexpr S (int *i) : i{i} {} | |
| constexpr ~S () { delete[] i; } | |
| int *i; | |
| }; | |
| constexpr S foo (int x) { return { new int[x] () }; } | |
| constexpr bool bar () { foo (1); return true; } | |
| constexpr bool baz () { foo (1); return false; } | |
| static_assert (bar ()); | |
| static_assert (!baz ()); |