I find bug in cint/root. But may be, this bug is fixed now in cint 5.13.17
("Loop compile internal error" bug). I have root with cint 5.13.16.
Bug:
file bad3.cpp
--------------------------------------------------------------------------------
#include <stdio.h>
class ResultInfo
{
public:
int tmp;
};
class ResultArr
{
public:
ResultInfo *pArr;
ResultArr()
{ pArr = new ResultInfo[20]; };
~ResultArr()
{ delete [] pArr; };
ResultInfo *GetAt(int i)
{ return (pArr + i); };
};
void bad3( )
{
ResultArr resArr;
ResultInfo *res;
for(;1;) // I try "while" first
{
res = resArr.GetAt(0); // LINE 26
break;
}
printf("%d\n",res->tmp); // LINE 29
}
------------------------------------------------------------------------
in root interactive session:
root [0] .L bad3.cpp
root [1] bad3()
Error: Incorrect assignment to res FILE:bad3.cpp LINE:26
Error: illegal pointer to class object res 0x0 224 FILE:bad3.cpp LINE:29
0
root may be crash with minor change in the code.
All works OK with lower optimization ( .O1).
I use root 1.01/07 on Windows NT.
Voropaev S.G.