Waldek Hebisch wrote:
I think the problem was that value to be assigned was internally converted to `Integer' which caused subsequent operation to treat arguments as signed. In particular shifting 1 (`True') from highest bit positions to proper place filled high sub-word with 1-s. Since later we want only low bits the range check failed. AFAICS earlier we would just silently produce wrong code (setting too many bits to 1).
The patch below should fix this:
Great, this solves the problem !
New testsuite results (some of the failures discussed before)
TEST bprealtest.pas: ./a.out: BP compatible 6 byte `Real' type does not support infinity (error #871 at 2fd3)
TEST fjf1021h.pas: ./fjf1021h.pas:6: error: expressions with side-effects are not allowed in schema types failed
TEST fjf1021i.pas: ./fjf1021i.pas:8: error: expressions with side-effects are not allowed in schema types failed
TEST fjf659o.pas: ./test_run: line 345: 16184 Segmentation fault ./"$A_OUT" "$1"
TEST fjf998r.pas: failed:
TEST longr2.pas: dummy.pas: In main program: dummy.pas:2: error: real constant out of range
Regards,
Adriaan van Os