1// GROUPS passed temps
2// temps file
3// Message-Id: <9311171029.AA00592@mencon>
4// From: gfm@mencon.mencon.oz.au (Graham Menhennitt)
5// Subject: gcc 2.5.3 - bug deleting object that is still referred to
6// Date: Wed, 17 Nov 93 21:29:23 EST
7
8#include        <stdio.h>
9
10class C {
11public:
12        C(int i) : val(i) { ; }
13        C(const C& c) : val(c.val) { ; }
14        ~C(void) { val = 999; }
15        C& operator = (const C& c) { val = c.val; return *this; }
16
17        C& inc(int i) { val += i; return *this; }
18
19        int val;
20};
21
22C
23f(void)
24{
25        return C(3);
26}
27
28C
29f(int i)
30{
31        return f().inc(i);
32}
33
34int
35main(void)
36{
37	if (f (2).val != 5)
38		{ printf ("FAIL\n"); return 1; }
39	else
40		printf ("PASS\n");
41}
42