// 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, ""); |