(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp1y/
constexpr-99859-1.C
// PR c++/99859
// { dg-do compile { target c++14 } }

constexpr int
foo (int *x)
{
  return ++*x;
}

struct S { constexpr S () : a(0) { foo (&a); foo (&a); } int a; };
constexpr S s = S ();
static_assert (s.a == 2, "");

struct R { int *p; };

constexpr int
bar (R x)
{
  return ++*x.p;
}

struct T { int a = 0; constexpr T () { bar (R{&a}); bar (R{&a}); } };
constexpr T t = T ();
static_assert (t.a == 2, "");