internal comp. error on handling structures with a long list of datamembers

Pasha Murat murat@cdfsga.fnal.gov
Tue Jan 12 12:53:00 GMT 1999


Dear EGCS developers, let  me report an internal compiler error returned by 
egcs (running on SGI IRIX 6.2 and configured for 5.3 with gas) 
when I've been trying to compile a code with a structure containing a pretty long
list of datamembers (see below). The error goes away when I comment out some 
datamembers not used by the compiled routine. The older versions of egcs also 
have the same problem.
			thanks a lot for your time and effort,  -pasha
--------------------------------------------------------------------------------
/data35/upgrade/murat/run1>gcc -c -v -I./ stntuple/ana/print_hpt_tracks.cc
Reading specs from /data69/upgrade/murat/egcs-19990103/lib/gcc-lib/mips-sgi-irix5.3/egcs-2.92.34/specs
gcc version egcs-2.92.34 19990103 (gcc2 ss-980609 experimental)
 /data69/upgrade/murat/egcs-19990103/lib/gcc-lib/mips-sgi-irix5.3/egcs-2.92.34/cpp -lang-c++ -v -I./ -isystem /data61/top/murat/bin/include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=92 -Dunix -Dmips -Dsgi -Dhost_mips -DMIPSEB -D_MIPSEB -DSYSTYPE_SVR4 -D_SVR4_SOURCE -D_MODERN_C -D__DSO__ -D_MIPS_SIM=_MIPS_SIM_ABI32 -D_MIPS_SZPTR=32 -D__unix__ -D__mips__ -D__sgi__ -D__host_mips__ -D__MIPSEB__ -D_MIPSEB -D__SYSTYPE_SVR4__ -D_SVR4_SOURCE -D_MODERN_C -D__DSO__ -D_MIPS_SIM=_MIPS_SIM_ABI32 -D_MIPS_SZPTR=32 -D__unix -D__mips -D__sgi -D__host_mips -D__MIPSEB -D__SYSTYPE_SVR4 -Asystem(unix) -Asystem(svr4) -Acpu(mips) -Amachine(sgi) -D__EXCEPTIONS -D__CHAR_UNSIGNED__ -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS -D__SIZE_TYPE__=unsigned int -D__PTRDIFF_TYPE__=int -D__EXTENSIONS__ -D_SGI_SOURCE -D_LONGLONG -D_MIPS_FPSET=16 -D_MIPS_ISA=_MIPS_ISA_MIPS1 -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 stntuple/ana/print_hpt_tracks.cc /var/tmp/ccB1L7vN.ii
GNU CPP version egcs-2.92.34 19990103 (gcc2 ss-980609 experimental) [AL 1.1, MM 40] SGI running IRIX 5.x
#include "..." search starts here:
#include <...> search starts here:
 .
 /data69/upgrade/murat/egcs-19990103/include/g++-2
 /data69/upgrade/murat/egcs-19990103/include
 /data69/upgrade/murat/egcs-19990103/mips-sgi-irix5.3/include
 /data69/upgrade/murat/egcs-19990103/lib/gcc-lib/mips-sgi-irix5.3/egcs-2.92.34/include
 /usr/include
End of search list.
 /data69/upgrade/murat/egcs-19990103/lib/gcc-lib/mips-sgi-irix5.3/egcs-2.92.34/cc1plus /var/tmp/ccB1L7vN.ii -quiet -dumpbase print_hpt_tracks.cc -version -o /var/tmp/ccqFipMv.s
GNU C++ version egcs-2.92.34 19990103 (gcc2 ss-980609 experimental) (mips-sgi-irix5.3) compiled by GNU C version egcs-2.92.34 19990103 (gcc2 ss-980609 experimental).
stntuple/ana/print_hpt_tracks.cc: In function `void print_hpt_tracks()':
stntuple/ana/print_hpt_tracks.cc:30: internal error--unrecognizable insn:
(insn 578 576 580 (set (reg:SI 208)
        (plus:SI (reg:SI 204)
            (const_int 37668))) -1 (nil)
    (nil))
toplev.c:1397: Internal compiler error in function fatal_insn


--------------------------------------------------------------------------------
/data35/upgrade/murat/run1>cat stntuple/ana/print_hpt_tracksa.cc
#include "iostream.h"
#include "iomanip.h"

typedef int   Int_t;
typedef float Float_t;
typedef int   UInt_t;

struct StntupleEvent_t {
  Int_t           Version;
  Int_t           Run;
  Int_t           Event;
  Float_t         Ilum;
  Int_t           Trigbits;
  UInt_t          Goodrun;
  Int_t           Brcode;
  UInt_t          Goodtrig;
  Int_t           Trigword;
  Int_t           Njet10;
  Int_t           Njet15;
  Int_t           Njet20;
  Int_t           Njet25;
  Int_t           Nhpte;
  Int_t           Nlcent;
  Int_t           Nlplug;
  Int_t           Nhptm;
  Int_t           Ncmio;
  Int_t           Ngtau;
  Int_t           Nlepton;
  Float_t         Etout;
  Int_t           Njt;
  Float_t         Jtet[20];
  Float_t         Jtm[20];
  Float_t         Jtp4[20][4];
  Float_t         Jteveta[20];
  Float_t         Jtdteta[20];
  Float_t         Jtphi[20];
  Float_t         Jtemf[20];
  Int_t           Jtword[20];
  Float_t         Jtcorfm[20];
  Float_t         Jtcorfd[20];
  Float_t         Jtcorfa[20];
  Int_t           Jtntr[20];
  Int_t           Jtntrp[20];
  Float_t         Jtep[20];
  Int_t           Jtnjtrk0[20];
  Int_t           Jttag[20];
  Float_t         Jtegrd[20];
  Float_t         Jvbpb[20];
  Float_t         Jpbpb[20];
  Float_t         Scbpb[20];
  Float_t         Scnpb[20];
  Float_t         Jpppb[20];
  Float_t         Jpnpb[20];
  Float_t         Jtau1[20];
  Float_t         Jtau2[20];
  Float_t         Jtzvtx[20];
  Float_t         Jtdzvtx[20];
  Float_t         Jt_ptout[20];
  Float_t         Jtvpt[20][20];
  Float_t         Jtnovpt[20];
  Int_t           Nj1;
  Float_t         J1et[20];
  Float_t         J1m[20];
  Float_t         J1p4[20][4];
  Float_t         J1eveta[20];
  Float_t         J1dteta[20];
  Float_t         J1phi[20];
  Int_t           J1word[20];
  Int_t           J1jts[20];
  Float_t         J1corfm[20];
  Float_t         J1corfd[20];
  Float_t         j1egrd[20];
  Float_t         Met[5];
  Float_t         Metphi[5];
  Float_t         Metjt;
  Float_t         Metjtphi;
  Float_t         Metj1;
  Float_t         Metj1phi;
  Float_t         Metc;
  Float_t         Metcphi;
  Float_t         Htc;
  Float_t         Metcf;
  Float_t         Metcfphi;
  Float_t         Htcf;
  Float_t         Etatrks;
  Float_t         Phitrks;
  Float_t         Pttrks;
  Float_t         Seedpt;
  Float_t         Sumet;
  Float_t         Sumetjet;
  Float_t         Metsig;
                                        // ****** ELECTRON block
  Int_t           Nel;
  Float_t         Ep4[40][4];
  Float_t         Eetcor[40];
  Float_t         Eet[40];
  Float_t         Echarge[40];
  Float_t         Edteta[40];
  Float_t         Eeveta[40];
  Float_t         Ephi[40];
  Float_t         Ept[40];
  Float_t         Estat[40];
   Float_t         Ezv[40];
   Float_t         Eep[40];             // E/p
   Float_t         Ehadem[40];          // Had/Em energy
   Float_t         Exces[40];
   Float_t         Edelx[40];
   Float_t         Ezces[40];
   Float_t         Edelz[40];
   Float_t         Echis[40];
   Float_t         Echiw[40];
   Float_t         Eiso[40];
   Float_t         Etiso[40];
   Int_t           Eidwrd[40];
   Int_t           Eiswrd[40];
   Int_t           Econwrd[40];
   Float_t         Eztrk[40];
   Int_t           Efid[40];
   Int_t           Edet[40];
   Float_t         Ebte[40];
   Int_t           Enasl[40];
   Int_t           Enssl[40];
   Float_t         eptrk[40];
   Float_t         elshr2[40];
   Float_t         echi3[40];
   Float_t         echid[40];
   Float_t         evtxocc[40];
   Float_t         etime[40];
   Int_t           etrind[40];
                                        // ****** muon block
  Int_t           Nmu;
  Float_t         Murawpt[15];
  Float_t         Mup4[15][4];
  Float_t         Mupt[15];
  Float_t         Muq[15];
  Float_t         Muhad[15];
  Float_t         Muem[15];
  Float_t         Mueveta[15];
  Float_t         Muphi[15];
  Float_t         Mustat[15];
  Float_t         Muzv[15];
  Float_t         Mud0[15];
  Float_t         Mudelz[15];
  Float_t         Mudelx[15];
  Float_t         Muiso[15];
  Float_t         Mutiso[15];
  Int_t           Mucray[15];
  Int_t           Muidwrd[15];
  Int_t           Muiswrd[15];
  Float_t         Muztrk[15];
  Int_t           Mufid[15];
  Int_t           Mudet[15];
  Float_t         Mubte[15];
  Int_t           Munasl[15];
  Int_t           Munssl[15];
  Float_t         muchz0[15];
  Float_t         muchd0[15];
  Float_t         mutime[15];
  Float_t         muvtxocc[15];
  Float_t         mudteta[15];
  Int_t           mutrind[15];          // track number for this muon
                                        // ----------------- tau block
  Int_t           Ntau;
  Float_t         Tp4[40][4];
  Float_t         Tet[40];
  Int_t           Tq[40];
  Float_t         Tzv[40];
  Float_t         Tdteta[40];
  Float_t         Teveta[40];
  Float_t         Tphi[40];
  Float_t         Tpt[40];
  Float_t         Tptvis[40];
  Float_t         Tstat[40];
  Float_t         Tdelr[40];
  Float_t         Temf[40];
  Float_t         Tmass[40];
  Float_t         tpttr[40][4];
  Int_t           tntr10[40];
  Int_t           tnpi0[40];
  Int_t           tmustub[40];
  Int_t           ttrind[40][20];
  Int_t           Ndil;
  UInt_t          Tzflag;
  Int_t           Dilwrd;
  Float_t         Metdilep;
  Int_t           Njtdilep;
  Float_t         Dphiminj;
  Float_t         Dphiminl;
  Int_t           Dilmode;
  Int_t           Diltype1;
  Float_t         Eemass;
  Float_t         Mumumass;
  Float_t         Taumass;
  Float_t         Phomass;
  Int_t           Npho;
  Int_t           Ncencl;
  Int_t           Nplugcl;
  Int_t           Nphoidl;
  Int_t           Nphoisol;
  Int_t           Nphoid;
  Int_t           Nphoiso;
  Int_t           Ncmus;
  Int_t           Costub;
                                // photon block
  Int_t           Pdetect[10];
  Float_t         Pzv[10];
  Float_t         Pet[10];
  Float_t         Petc[10];             // corrected Et
  Float_t         Pp4[10][4];
  Float_t         Pco4[10];             // energy in the cone 0.4
  Float_t         Pcesx[10];
  Float_t         Pcesz[10];
  Float_t         Pcpr5ph[10];
  Float_t         Pcpr5ps[10];
  Float_t         Pdteta[10];
  Float_t         Peveta[10];
  Float_t         Pcese[10];
  Float_t         Pphi[10];
  Float_t         Pco7[10];
  Float_t         Phadem[10];           // Had/Em
  Float_t         Plshr[10];
  Float_t         Pstr2[10];
  Float_t         Pstre2[10];
  Float_t         Pwir2[10];
  Float_t         Pwire2[10];
  Float_t         Psumpt4[10];
  Float_t         Pvtxocc[10];
  Float_t         Ppt[10];
  Int_t           Pn3d[10];
  Float_t         Pchi[10];
  Float_t         Pchi3x3[10];
  Float_t         Pchieta[10];
  Float_t         Pchiphi[10];
  Float_t         Pstat[10];
  Float_t         pboxiso[10];
  UInt_t          pcesflg[10];
  Float_t         pe[10];
  Float_t         pceswht[10];
  Float_t         pcprwht[10];
  Float_t         pcesslide[10];
  Int_t           pwrd[10];
  Float_t         psth[10];
  Int_t           pelind[10];
  Float_t         pchistr[10];
  Float_t         pchiwir[10];
  Float_t         pcessig[10];
  Float_t         pcespg[10];
  Float_t         pcespb[10];
  Float_t         pcprpg[10];
  Float_t         pcprpb[10];
  Float_t         ppt2[10];
  Int_t           pntrwd3[10];
  Float_t         pcescprx[10];
  Float_t         ptkcprx[10];
  Float_t         ptime[10];
  Float_t         pvcor[10];
  Float_t         plcor[10];
                                // ----------------- tagging block
  Int_t           Ntag;
  Int_t           Btgwrd;
  Float_t         Lxy[4];
  Float_t         Lxyerr[4];
  Float_t         Ctau[4];
  Float_t         Tagchi[4];
  Int_t           Npvert;
  Float_t         Vxprim[3];
  Int_t           Vclass[20];
  Float_t         Vz[20];
  Float_t         Vq[20];
  Float_t         ptnov;
  Float_t         vzev;
  Int_t           vclassev;
  Int_t           Ngenp;
  Int_t           Ngid[100];
  Int_t           Ngn[100];
  Int_t           Ngnp[100];
  Int_t           Ngpid[100];
  Float_t         Gnp4[100][4];
                                // ------------------ "TR" : track block
  Int_t           ntr;
  Int_t           trvind[100];
  Int_t           trnsvx[100];
  Int_t           trnasl[100];
  Int_t           trnssl[100];
  Float_t         trcot[100];
  Float_t         trcurv[100];
  Float_t         trz0[100];
  Float_t         trd0[100];
  Float_t         trq[100];
  Float_t         trphi0[100];
  Float_t         trp4[100][4];
  Float_t         trpt[100];
  Float_t         treta[100];
  Float_t         trexeta[100];
  Float_t         trexphi[100];
  Int_t           trbcvind[100];
  Float_t         trbcz0[100];
  Float_t         trbcd0[100];
  Float_t         trbcq[100];
  Float_t         trbcp4[100][4];
  Float_t         trbcpt[100];
  Float_t         trbceta[100];
  Float_t         triso4[100];
                                // ------------------ "USER" : user block
  Int_t           ntru;
  Float_t         utd0[100];
  Float_t         utiso4[100];
};

extern StntupleEvent_t*   gEvent;

void print_hpt_tracks() {
  cout << " ******************** print_hpt_tracks " 
       << endl
       << "  i      Pt      Eta      Phi      Px      Py       Lam0      D0          Charge     Z0     Iso "
       << endl;
  cout.precision(5);
  cout.setf(ios::right,ios::adjustfield);
  for (int i=0; i<gEvent->ntr; i++) {
    if (gEvent->trpt[i] > 20.) {
      cout << setw(3) << i << " " 
           << setw(8) << gEvent->trpt[i] << " " 
           << setw(8) << gEvent->treta[i] << " " 
           << setw(8) << gEvent->trphi0[i] << " " 
           << setw(8) << gEvent->trp4[i][0] << " " 
           << setw(8) << gEvent->trp4[i][1] << " " 
           << setw(8) << gEvent->trcot[i] << " " 
           << setw(8) << gEvent->trd0[i] << " " 
           << setw(8) << gEvent->trq[i] << " " 
           << setw(8) << gEvent->trz0[i] << " " 
           << setw(8) << gEvent->triso4[i] << " " 
           << endl;
    }
  }
}
--------------------------------------------------------------------------------



More information about the Gcc-bugs mailing list