]>
Commit | Line | Data |
---|---|---|
06208009 JM |
1 | /* Test that the NRV optimization doesn't cause a1 to change too soon. This |
2 | is equivalent to c++/19317. */ | |
3 | /* { dg-do run } */ | |
4 | ||
5 | void abort (void); | |
6 | ||
7 | struct A | |
8 | { | |
9 | int i[100]; | |
10 | }; | |
11 | ||
12 | struct A a1; | |
13 | ||
14 | struct A f () | |
15 | { | |
16 | struct A a2; | |
17 | a2.i[0] = 42; | |
18 | /* a1.i[0] should still be 0 until we return. */ | |
19 | if (a1.i[0] != 0) | |
20 | abort (); | |
21 | return a2; | |
22 | } | |
23 | ||
24 | int main() | |
25 | { | |
26 | a1 = f(); | |
27 | return 0; | |
28 | } |