Re: CINT bug

From: Axel Naumann <Axel.Naumann_at_cern.ch>
Date: Fri, 25 Apr 2008 09:37:22 +0200


Hi Tom,

CINT has some known problems determining the proper overload; we will address those in the near future with a new overload resolution and also a much improved conversion algorithm. Both is badly needed.

As you have pointed out, your script shows several issues in CINT. I can reproduce them, and I will let you know when we made some progress with fixing them. Don't count on it to happen today; it might even be that we will only provide a solution for the new CINT version based on Reflex. Again, I will let you know once we made some progress.

Cheers, Axel.

Tom Roberts wrote:
> I have (finally!) figured out why my big Root macro is crashing. It is
> due to a bug in CINT that causes it to get confused between the
> following functions:
> Plot::Plot(TNtuple *_nt, const char *x)
> Plot::Plot(TNtuple *_nt[], const char *x)
>
> The attached test8.C illustrates the problem. g4beamline.root is a small
> file it opens.
>
> The really crazy thing is that this test program crashes on Root 5.16,
> while the full macro works. Both crash on 5.18 (which is what I'm trying
> to fix).
>
> Clearly CINT is using the wrong constructor when called with a non-array
> pointer and for some reason that invalid call does not crash, but the
> valid call with an array does crash:
>
> root [0] .X test8.C
> Ntuple 'VirtualDetector/Det1' opened
> TTreeFormula created
> array constructor entered
> Just before crash
> Just after crash
> array constructor entered
> Just before crash
>
> *** Break *** segmentation violation
> ... full dump omitted
>
>
> Re-writing "TNtuple *_nt[]" as "TNtuple **_nt" changes where it crashes,
> still calling the wrong constructor. BIG CLUE: Root 5.16 with the
> original test8.C behaves as does 5.18 with this modified macro.
>
> All this suggests a workaround: avoid passing a pointer array as an
> argument to the constructor.
>
>
> Another unexpected surprise: try commenting out the #include and run it
> again -- I get 8 errors on line 9, which ostensibly does not use any TG
> functions at all!
>
>
> Tom Roberts
>
Received on Fri Apr 25 2008 - 09:37:26 CEST

This archive was generated by hypermail 2.2.0 : Fri Apr 25 2008 - 17:50:01 CEST