blob: 586feded505c6ab7489af9b3c69b10c49a82bde0 [file] [log] [blame]
// PR c++/96994
// { dg-do run { target c++20 } }
struct A { consteval A () { i = 1; } consteval A (int x) : i (x) {} int i = 0; };
struct B { constexpr B () { i = 1; } constexpr B (int x) : i (x) {} int i = 0; };
A const a;
constexpr A b;
B const c;
A const constinit d;
A const e = 2;
constexpr A f = 3;
B const g = 4;
A const constinit h = 5;
A i;
B j;
A k = 6;
B l = 7;
static_assert (b.i == 1 && f.i == 3);
int
main()
{
if (a.i != 1 || c.i != 1 || d.i != 1 || e.i != 2 || g.i != 4 || h.i != 5
|| i.i != 1 || j.i != 1 || k.i != 6 || l.i != 7)
__builtin_abort ();
}