Dear Rooters
I am running root 3.05/02 on MacOS X 10.1.2 and get a strange
error when a struct contains a boolean variable.
The enclosed macro1.C runs without problems.
However, in macro2.C I changed fVar1 from Int_t to Bool_t, and
thus get the following error:
root [0] .x macro1.C
fTxt2 = aaa
fTxt2 = bbb
fTxt2 = ccc
root [1] .x macro2.C
Error: Illegal pointer operation (letvalue) FILE:macro2.C LINE:12
Error: Illegal pointer operation (letvalue) FILE:macro2.C LINE:13
Error: Illegal pointer operation (letvalue) FILE:macro2.C LINE:14
Error: Illegal pointer operation (letvalue) FILE:macro2.C LINE:15
*** Interpreter error recovered ***
root [2] .x macro3.C
Error: Illegal pointer operation (letvalue) FILE:macro3.C LINE:15
Error: Illegal pointer operation (letvalue) FILE:macro3.C LINE:16
Error: Illegal pointer operation (letvalue) FILE:macro3.C LINE:17
Error: Illegal pointer operation (letvalue) FILE:macro3.C LINE:18
Error: Illegal pointer operation (letvalue) FILE:macro3.C LINE:19
*** Interpreter error recovered ***
root [3]
My real problem is shown in macro3.C which results in the same
error!
Could this be a CINT problem with MacOS X?
How can this problem be solved?
Best regards
Christian
_._._._._._._._._._._._._._._._
C.h.i.s.t.i.a.n S.t.r.a.t.o.w.a
V.i.e.n.n.a A.u.s.t.r.i.a
_._._._._._._._._._._._._._._._
//test: .x macro1.C
struct MyStruct1 {
const char *fTxt1;
const char *fTxt2;
Int_t fVar1;
Int_t fVar2;
TObject *fObj;
};
MyStruct1 kData1[] = {
{ "", "aaa", 0, 1, 0 },
{ "", "bbb", 0, 2, 0 },
{ "", "ccc", 0, 3, 0 },
{ 0, 0, 0, 0, 0 }
};
void macro1()
{
for (Int_t i=0; kData1[i].fTxt2 != 0; i++) {
cout << "fTxt2 = " << kData1[i].fTxt2 << endl;
}
}
//test: .x macro2.C
struct MyStruct2 {
const char *fTxt1;
const char *fTxt2;
Bool_t fVar1;
Int_t fVar2;
TObject *fObj;
};
MyStruct2 kData2[] = {
{ "", "aaa", kFALSE, 1, 0 },
{ "", "bbb", kFALSE, 2, 0 },
{ "", "ccc", kFALSE, 3, 0 },
{ 0, 0, 0, 0, 0 }
};
void macro2()
{
for (Int_t i=0; kData2[i].fTxt2 != 0; i++) {
cout << "fTxt2 = " << kData2[i].fTxt2 << endl;
}
}
//test: .x macro3.C
/* see class TGToolBar.h
*/
struct ToolBarData_t {
const char *fPixmap;
const char *fTipText;
Bool_t fStayDown;
Int_t fId;
TGButton *fButton;
};
ToolBarData_t kTBarData[] = {
{ "", "Open file", kFALSE, 1, 0 },
{ "", "Save file as", kFALSE, 2, 0 },
{ "", "", 0, -1, 0 },
{ "", "Print file", kFALSE, -1, 0 },
{ 0, 0, 0, 0, 0 }
};
void macro3()
{
for (Int_t i=0; kTBarData[i].fTipText != 0; i++) {
cout << "fTipText = " << kTBarData[i].fTipText << endl;
}
}
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:09 MET