I would like to report a spurious bug of GEC.
A local variable declared as REAL_64 is considered
by the compiler as an INTEGER_32 variable: instead of
`T13 l3;' the C code reads `T6 l6;'. This has several
First, additions like `x+x1' are rejected where `x'
is a correctly treated REAL_64 but `x1' is the variable
of question. Compilation works if those additions are
commented out but then the algorithm is wrong.
Second, routine calls like `call(x1)' get in C code
a catcall check which at run time fires: the call
expects REAL_64 while the actual argument is the
The attachment contains the slightly reduced project.
Running "geant compile" should work.
The critical feature is `DIAGRAM_IMPL.callback', the
critical local variable is `x1' (line 538). Lines 555
and 559 are commented out additions, erroneous catcall
checks are inserted in the calls of lines 552, 568, 580.
Log in to post a comment.