Evaluating expressions inside round brackets

I am using :
ROOT 5.25/02 (trunk@30530, Sep 29 2009, 15:28:19 on linux)
CINT/ROOT C/C++ Interpreter version 5.17.00, Dec 21, 2008

recently, I noticed a strange behaviour for the following:

void test(Int_t *a)
fprintf (stdout, “value = %d\n”, *a);


root [0] .L test.C
Int_t b;
test((b=10, &b));

gives 0. If one compiles this code either in C or C++ then this works.
I’m posting it because I don’t know whether this happens because this feature is not supported or because there is a bug.


Thank you for reporting this problem.

It’s a known limitation of the CINT parser: However we will not address this issue with CINT as it would require a major overhaul of its internals:

To work around this problem either your code (via ACLiC) or update your code to avoid the nested round brackets in function calls.