CINT Q: parsing type definitions on the fly

Pasha Murat (murat@cdfsga.fnal.gov)
Tue, 17 Jun 1997 15:12:12 GMT


Hi,

I have a question about rootcint parsing a type definition
(I'm using SGI IRIX 5.3, GCC-compiled ROOT 1.01/03):
--------------------------------------------------------------------------------
-1-

I have a problem when trying to define a new type interactively:

CINT/ROOT C/C++ Interpreter version 5.13.10, May 22 1997
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] struct AA {
end with '}'> int ia;
end with '}'> };
root [1] AA a;
root [2] a.ia = 10;

*** Break *** segmentation violation
--------------------------------------------------------------------------------
-2-

However the same type definition could be used without any problem
when loaded from a file:

-------------------------- test.cc
struct AA {
int ia;
};
---------------------------

root [0] .L test.cc
root [1] AA a;
root [2] a.ia = 10;
root [3] .p a
(struct AA)272045208
0x0 int ia=10

--------------------------------------------------------------------------------
-3-
Finally, the following command sequence works:

root [13] typedef struct AA {
end with '}'> int ia;
end with '}'> };
root [14] a.ia = 10;
root [15] .p a
(struct AA)272045208
0x0 int ia=10

--------------------------------------------------------------------------------

The question is why interactive type definition does require
`typedef' whereas loading the same type definition from the macro
file does not?

Thanks, Pasha