// 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 } int main () { B b; if (b.a.i != 1 || b.a.j != 2) __builtin_abort (); E e; if (e.c.i != 1) __builtin_abort (); }