Incomprehensible line numbers in error / warning messages

Hi,

When running cint macros using loops with blocks in curled brackets the line numbering in my root installataion is somehow incomprehensible. The line numbers indicated in the error/warning output of cint do not correspond with the actual line numbering in the source file. And i did not find any hint on this in the documentation until now.

The following code sample illustrates this effect.

int TEST ()
{

for (int i = 0; i < 4; i++){
printf(“Hello1\n”);
printf(“Hello2\n”);
};

ERROR ();

return 10;
};

if runing that bit of code in my installation I get the following output.

root [1] .x TEST.C
Hello1
Hello2
Hello1
Hello2
Hello1
Hello2
Hello1
Hello2
Error: Function ERROR() is not defined in current scope TEST.C:11:
*** Interpreter error recovered ***

Here the error line number is given with 11 but the undefined function ERROR is located in line 9. After some tests i got the impression that the scope of the for-loop indicated by the curly brackets seems to confuse cint in some way.

I am interested if i made a mistake in the installation and if so how to fix it.

Thanks

Christian

Hi,

The error message issued by CINT are known to be sometimes somewhat inaccurate and/or hard to decipher. We do plan on improving the situation.
We are currently working on revamping the CINT code base when this is done (hopefully soon) we would be in a better position to address those kind of issues).

In the meantime, whenever seeing a ‘weird’ CINT error message, I recommend to ask the compiler for a better diagnosis by simply using ACLiC:root [2] .L TEST.C+ Info in <ACLiC>: script has already been loaded in interpreted mode Info in <ACLiC>: unloading /var/tmp/./TEST.C and compiling it Info in <TUnixSystem::ACLiC>: creating shared library /var/tmp/./TEST_C.so /var/tmp/./TEST.C: In function 'int TEST()': /var/tmp/./TEST.C:9: error: 'ERROR' was not declared in this scope g++: /var/tmp/./fileo6gfB0.o: No such file or directory Error in <ACLiC>: Compilation failed!

Cheers,
Philippe