Mercurial > hg > CbC > CbC_gcc
annotate gcc/testsuite/gcc.dg/nrv1.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
rev | line source |
---|---|
111 | 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 } |