// PR tree-optimization/43655 | |
// { dg-do run } | |
// { dg-options "-O0 -ftree-ter" } | |
extern "C" void abort (); | |
struct C | |
{ | |
C (int i) : val(i) { } | |
C (const C& c) : val(c.val) { } | |
~C (void) { val = 999; } | |
C& operator = (const C& c) { val = c.val; return *this; } | |
C& inc (int i) { val += i; return *this; } | |
int val; | |
}; | |
C | |
f () | |
{ | |
return C (3); | |
} | |
C | |
f (int i) | |
{ | |
return f ().inc (i); | |
} | |
int | |
main () | |
{ | |
if (f (2).val != 5) | |
abort (); | |
} |