RE: rootcint segmentation fault with SL3/gcc 3.2.3

From: Philippe Canal <pcanal_at_fnal.gov>
Date: Mon, 30 Apr 2007 10:50:35 -0500


Hi Nick,

Thanks for reporting this problem (due in part to a bug in gcc 3.2.3). This is now corrected in the head of the CVS repository and in the v5.14/00 patch branch.

Cheers,
Philippe

-----Original Message-----
From: owner-roottalk_at_pcroot.cern.ch [mailto:owner-roottalk_at_pcroot.cern.ch] On Behalf Of Nick West
Sent: Wednesday, April 04, 2007 5:20 AM
To: roottalk_at_pcroot.cern.ch
Subject: [ROOT] rootcint segmentation fault with SL3/gcc 3.2.3

Hi Roottalk,

Running on

  Scientific Linux SL release 3.0.8 with gcc version 3.2.3

I am having trouble building a particularly dictionary with rootcint versions 5.15.04 and beyond. The command:-

  rootcint -f NueMatrixHelperDict.cc -c NueMatrixHelper.h LinkDef.h

gives a segmentation fault. I have isolated the problem to the code:-

  const float k_std_dis_res[2][2][4] = {

     /* v+p   v+n   vb+p  vb+n */
     {{0.20, 0.20, 0.200, 0.20},{1.000, 1.000, 1.000, 1.000}},  // cc
     {{0.20, 0.20, 0.200, 0.20},{1.000, 1.000, 1.000, 1.000}}   // nc
     /* multiplicity = 2 */      /* multiplicity = 3 */
  };

The stack dump looks like this:-

#0 0x001ddb01 in G__initary (new_name=0xbffeb1b0
"k_std_dis_res[2][2][4]") at cint/src/v6_decl.cxx:2781   2781 inc *= var->varlabel[varid][pi--];   (gdb) info stack
#0 0x001ddb01 in G__initary (new_name=0xbffeb1b0
"k_std_dis_res[2][2][4]") at cint/src/v6_decl.cxx:2781
#1 0x001dc7c4 in G__define_var (tagnum=-1, typenum=-1) at
cint/src/v6_decl.cxx:2389
#2 0x00259685 in G__exec_statement () at cint/src/v6_parse.cxx:3603
#3 0x0022cea1 in G__loadfile (filenamein=0xbffefd10
"NueMatrixHelper.h") at cint/src/v6_loadfile.cxx:2013
#4 0x00226398 in G__main (argc=23, argv=0xbfff8b20) at
cint/src/v6_init.cxx:1270
#5 0x08068361 in main (argc=6, argv=0xbfff9e24) at
utils/src/rootcint.cxx:4475

and looking at the source line:-

    inc *= var->varlabel[varid][pi--];

the problem is:-

  print varid
  $3 = 0
  print pi
  $4 = 166049132 <=========== !!

The problem goes away if I switch to    

   Scientific Linux SL release 4.4 with gcc version 3.4.6

or retreat to ROOT version 5.15.02, but neither is an option for me.

I attach the two files NueMatrixHelper.h LinkDef.h that illustrate the problem.

Thanks,

Nick West Received on Mon Apr 30 2007 - 17:51:45 CEST

This archive was generated by hypermail 2.2.0 : Tue May 01 2007 - 11:50:01 CEST