PR c++/86728 - C variadic generic lambda.
[official-gcc.git] / gcc / testsuite / g++.dg / opt / nrv8.C
blobca39e7e0f32b51d720b7290977052b5cd36041b3
1 // PR optimization/19531
2 // forbids NRV on volatile return value.
3 // { dg-options -O2 }
4 // { dg-do run }
6 extern "C" { void abort(); }
8 struct A
10   int d;
12   A ()                     { d = 123; }
13   A (const A & o)          { d = o.d;  }
14   A (volatile const A & o) { d = o.d + 2; }
17 A bar()
19   volatile A l;
20   return l;
23 int main()
25   A a = bar ();
27   if (a.d != 125)
28     abort();
30   return 0;