| // PR c++/87152 | |
| // { dg-do run } | |
| // { dg-options "-std=c++2a" } | |
| struct A { int i; long long j; } a[64]; | |
| template<typename> | |
| void foo () | |
| { | |
| A b = { 1, 2 }; | |
| for (auto & [ u, v ] : a) | |
| { | |
| u = 2; | |
| v = 3; | |
| } | |
| for (auto [x, y] = b; auto [ u, v ] : a) | |
| if (y + u != x + v) | |
| __builtin_abort (); | |
| for (auto [x, y] = b; auto & [ u, v ] : a) | |
| if (y + u != x + v) | |
| __builtin_abort (); | |
| } | |
| int | |
| main () | |
| { | |
| foo<int>(); | |
| } |