| // { dg-do run } |
| // GROUPS passed temps |
| // temps file |
| // Message-Id: <9311171029.AA00592@mencon> |
| // From: gfm@mencon.mencon.oz.au (Graham Menhennitt) |
| // Subject: gcc 2.5.3 - bug deleting object that is still referred to |
| // Date: Wed, 17 Nov 93 21:29:23 EST |
| |
| #include <stdio.h> |
| |
| class C { |
| public: |
| 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(void) |
| { |
| return C(3); |
| } |
| |
| C |
| f(int i) |
| { |
| return f().inc(i); |
| } |
| |
| int |
| main(void) |
| { |
| if (f (2).val != 5) |
| { printf ("FAIL\n"); return 1; } |
| else |
| printf ("PASS\n"); |
| } |