Merged revisions 208012,208018-208019,208021,208023-208030,208033,208037,208040-20804...
[official-gcc.git] / main / gcc / testsuite / g++.dg / opt / pr43655.C
blobf7e370b9e426c4c1a66de80463dc42346f73605b
1 // PR tree-optimization/43655
2 // { dg-do run }
3 // { dg-options "-O0 -ftree-ter" }
5 extern "C" void abort ();
7 struct C
9   C (int i) : val(i) { }
10   C (const C& c) : val(c.val) { }
11   ~C (void) { val = 999; }
12   C& operator = (const C& c) { val = c.val; return *this; }
13   C& inc (int i) { val += i; return *this; }
14   int val;
18 f ()
20   return C (3);
24 f (int i)
26   return f ().inc (i);
29 int
30 main ()
32   if (f (2).val != 5)
33     abort ();