RE: [ROOT] problem with rootcint and array initialization

From: Philippe Canal (pcanal@fnal.gov)
Date: Fri Apr 16 2004 - 18:10:35 MEST


Hi Axel,

Thanks for reporting this problem.  We indeed have some issues with
array inside a namepace, we are working on a solution.  The only
work-around I have so far is to hide the  relevant part of the header
from rootcint.

Cheers,
Philippe

-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Axel Naumann
Sent: Wednesday, April 14, 2004 2:42 PM
To: roottalk
Subject: [ROOT] problem with rootcint and array initialization


Hi,

root cvs, linux, gcc3.2. This is the relevant part of the header:

#ifndef INCLUDE_TRIGINFO
#define INCLUDE_TRIGINFO
namespace tI {
    const int nTrigs=5;
    const int nHists=2<<(nTrigs-1);
    const char* trigNames[nTrigs]={"MU_2TRK3_L2M0",
                                   "2MU_A_L2ETAPHI", "2MU_C_2L2_2TRK",
                                   "2MU_A_L2M0",
                                   "MUW_L2M0_2TK3_MM"};

    TH1F* fHAll[nHists];
    TH1F* fHYes[nHists];
    TH1F* fHEff[nHists];
...

This happens when compiling my source:
g++ -c zbb_tmb_tree/TMBTree_bu_2MU_trigeff.C `root-config --cflags` -I. 
-Ikinem_util -Itmb_tree -Itmb_bcjet -Imc_analyze && echo Happy
Happy

And this happens when building the dicts for a class which includes this 
header:
Info in <TUnixSystem::ACLiC>: creating shared library 
/work/mook-clued0/axel/ZbbMC/zbb_tmb_tree/TMBTree_bu_2MU_trigeff_C.so
Error: array initialization 
FILE:/work/mook-clued0/axel/ZbbMC/zbb_tmb_tree/triginfo.h LINE:6
Syntax Error: "MUW_L2M0_2TK3_MM" Maybe missing ';' 
FILE:/work/mook-clued0/axel/ZbbMC/zbb_tmb_tree/triginfo.h LINE:9
Error: Symbol nHists is not defined in current scope 
FILE:/work/mook-clued0/axel/ZbbMC/zbb_tmb_tree/triginfo.h LINE:11
Error: Symbol nHists is not defined in current scope 
FILE:/work/mook-clued0/axel/ZbbMC/zbb_tmb_tree/triginfo.h LINE:12
Error: Symbol nHists is not defined in current scope 
FILE:/work/mook-clued0/axel/ZbbMC/zbb_tmb_tree/triginfo.h LINE:13
Error: Too many '}' 
FILE:/work/mook-clued0/axel/ZbbMC/zbb_tmb_tree/triginfo.h LINE:29
Warning: Error occured during reading source files
Warning: Error occured during dictionary source generation
!!!Removing /work/mook-clued0/axel/ZbbMC/zbb_tmb_tree/fileXkKzIy.cxx 
/work/mook-clued0/axel/ZbbMC/zbb_tmb_tree/fileXkKzIy.h !!!
Error: rootcint: error loading headers...
Error in <ACLiC>: Dictionary generation failed!

Works fine without the namespace. Am I doing something wrong here, or is 
this a problem with rootcint?

Axel.



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:07 MET