Re: ROOTCINT problems with long long

From: gora@solar2.ucr.edu
Date: Fri Jul 30 1999 - 23:44:43 MEST


Dear Masaharu,
  The file GPIB.h contains quite a bit of cruft extracted from the system
libraries, so I made up a very simple class that reproduces this problem.
Please let me know if you still really want the GPIB.h and GPIBLinkDef.h.
I quite agree with your comments about the difficulties in supporting long
long, and it probably need not be too much of a priority for you. The only
reason I needed this was for the system files used by the device driver, and
I have managed to find a workaround by using the non-gcc struct version
for the type of my variables rather than long long.
  I have included below three files: example.h, example.cxx, and
exampleLinkDef.h. rootcint -f exampleDict.cxx -c -t example.h exampleLinkDef.h
gives me the same segmentation fault as for GPIB.h. If I try to load the class
into an interactive ROOT session, I get a series of "*** Break *** segmentation
violation" messages and have to kill ROOT with ^C. Again, all this is on a
Linux box running Redhat 5.2 (kernel 2.0.36) with egcs-2.91.66 and ROOT
version 2.22.09. I have not tried your updated cint as yet.
                                                      Regards,
                                                          Gora

---------- Begin: example.h -------------
class Tmyclass {
  public:
    long long flnlong;
    myclass();
    virtual ~Tmyclass();
    void PrintLongLong(); 
    ClassDef(TMyclass, 1)
};
----------- End: example.h -------------

---------- Begin: example.cxx -------------
#include <iostream.h>
#include "example.h"

ClassImp(Tmyclass)

Tmyclass::Tmyclass()
{
  // Do nothing
}
Tmyclass::~Tmyclass()
{
  // Do nothing
}
Tmyclass::~Tmyclass(int myint)
{
 flnlong = myint;
}
void Tmyclass::PrintLongLong()
{
 cout << (int) flnlong << endl;
}
----------- End: example.cxx -------------

---------- Begin: exampleLinkDef.h -------------
#ifdef __CINT__
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;

#pragma link C++ class Tmyclass;
#endif
----------- End: exampleLinkDef.h -------------



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:36 MET