Date: Sun, 1 Apr 2001 13:07:02 -0700 From: "David O'Brien" <obrien@freebsd.org> To: Marcin Gryszkalis <dagoon@math.uni.lodz.pl> Cc: freebsd-alpha@freebsd.org Subject: Re: gperf segfail on 4.3b Message-ID: <20010401130702.A60525@dragon.nuxi.com> In-Reply-To: <Pine.BSF.4.21.0104011746530.45419-100000@imul.math.uni.lodz.pl>; from dagoon@math.uni.lodz.pl on Sun, Apr 01, 2001 at 05:54:42PM %2B0200 References: <Pine.BSF.4.21.0104011540330.45419-100000@imul.math.uni.lodz.pl> <Pine.BSF.4.21.0104011746530.45419-100000@imul.math.uni.lodz.pl>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Apr 01, 2001 at 05:54:42PM +0200, Marcin Gryszkalis wrote:
> Ok, seems like I have a real problem: this source:
> -----------------------------------------------
> gives 'CCWWWD' as result while it should 'CCCWWWDD'. Constructor and
> destructor for d0 are NOT called.
How do you know which ctor/dtor is being called with the way you wrote
this? Try this version:
#include <stdio.h>
class dg {
char *n;
public: dg(){n=""; puts("C'");}
dg(char *s){n=s; printf("C%s\n",n);}
~dg() {printf("D%s\n",n);}
void work(char *s){printf("W%s\n",s);}
};
dg d0("0");
int main (int argc, char *argv[])
{
dg d1("1");
dg *d2=new dg("2");
d0.work("0"); d1.work("1"); d2->work("2");
return 0;
}
I believe you mean dtor for d2 NOT called -- you never delete the
pointer, so how could it get called?
x86 -current: C0 C1 C2 W0 W1 W2 D1 D0
x86 4.3-RC#2: C0 C1 C2 W0 W1 W2 D1 D0
Alpha 4.3-RC#2: C0 C1 C2 W0 W1 W2 D1 D0
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010401130702.A60525>
