[ROOT] RE:CINT: extra destructor called

From: Masaharu Goto (MXJ02154@nifty.ne.jp)
Date: Tue Aug 07 2001 - 22:13:21 MEST


Hello Christoph,

Thank you for reporting this problem.
It turned out that this is a tricky one. I need time to
think about this. Meanwhile, a workaround is to use optimization
level 0 '.O0' to turn off bytecode compilation.

Thank you
Masaharu Goto


>Date: Mon, 6 Aug 2001 16:02:58 +0300
>From: Christoph Bugel <chris@tti-telecom.com>
>To: roottalk@pcroot.cern.ch, rootdev@pcroot.cern.ch
>Subject: CINT: extra destructor called
>
>Hi!
>I found a bug in cint, causing it to call a destructor where it
>shouldnt.  For example, the code below will produce this output:
>
>DTOR
>CTOR
>DTOR
>
>This was tested with cint-5.15.07.
>BTW, when 'i' is initialized to 3, the output will be 'DTOR' which is
>also wrong. If 'i' is initialized to 0 it works ok. (CTOR, DTOR).
>Thanks!
>
>here is the code:
>
>/////////////////////////////////////
>
>class X
>{
>       public:
>       X(){ printf("CTOR\n"); }
>       ~X(){ printf("DTOR\n"); }
>};
>void bug()
>{ 
>       int i=0;
>       while(i<5)
>       {
>               if(i==1)
>               {
>                       X x1;
>               }
>               i = i + 1;
>       }
>}
>



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:56 MET