* decl.c (make_typename_type): s/parameters/arguments/.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / constexpr-aggr2.C
blob805d026269d03dbae8768d37165fbfbeee3a256d
1 // PR c++/68782
2 // { dg-do compile { target c++11 } }
4 #define assert(X) do { if (!(X)) __builtin_abort(); } while (0)
6 struct holder { int& value; };
8 constexpr holder from_value(int& value)
9 { return { value }; }
11 struct aggr { int i; };
13 constexpr holder from_aggr(aggr& a)
14 { return from_value(a.i); }
16 int main()
18     aggr a { 42 };
20     // these don't fire
21     assert( &from_value(a.i).value != nullptr );
22     assert( &a.i == &from_value(a.i).value );
24     // those do
25     assert( &from_aggr(a).value != nullptr );
26     assert( &a.i == &from_aggr(a).value );