Closed fawltylanguage closed 2 years ago
It's an indirect result of #1086
For the record, it appears that the (ANTLR3) GDL interpreter treats all negative constants as a product: minus ("-") times whatever the following (positive) serie of [0..9] digits mean. i.e., only the absolute value of the numeric constant is compared to s,l,ll limits . This complicates a lot the problem as the special handling of limit cases as this one is to be done in the interpreter.
solved in #1204
Another variant:
IDL> help, 9223372036854775808u
<Expression> ULONG64 = 9223372036854775808
GDL> help, 9223372036854775808u
% Unsigned integer constant must be less than 65536.
'u' denotes signedness, not size.
9223372036854775808 is out of range for 64 bit signed integers. IDL accepts it and some popular IDL libraries use it, eg. Astrolib for fits reading.
A freshly compiled GDL gives different results if this number is used. I think this is a bug in IDL, but you may consider to 'fix' it in GDL for compatibility with IDL.