aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp2a/constexpr-new9.C
blob: db45cdf72dc77389f377f50ff90d78c0f6bea18d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 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 ());