blob: f1221b286e8767d206b7cb10cca1e0627c058d2b [file] [log] [blame]
// PR c++/91363 - P0960R3: Parenthesized initialization of aggregates.
// { dg-do run { target c++20 } }
struct A {
int i = 0;
int j = 0;
};
struct B {
A a;
constexpr B() : a(1.1, 2) { }
};
struct C {
int i;
};
struct E {
C c;
E() : c(1.2) { }
};
struct F {
char a[4];
};
struct G {
F f;
G() : f("yew") { }
};
struct H {
int i;
int &&r;
};
int f() { return 42; }
struct I {
H h;
I() : h(1, f()) { }
};
I i; // dangling ref to f():
// {.i=1, .r=(int &) &TARGET_EXPR <D.2118, f ()>}
int
main ()
{
B b;
if (b.a.i != 1 || b.a.j != 2)
__builtin_abort ();
E e;
if (e.c.i != 1)
__builtin_abort ();
}