Adriaan van Os wrote:
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 !
Good, I'm applying it. (Causes no regressions for me.) Frank -- Frank Heckenbach, frank@g-n-u.de, http://fjf.gnu.de/, 7977168E GPC To-Do list, latest features, fixed bugs: http://www.gnu-pascal.de/todo.html GPC download signing key: ACB3 79B2 7EB2 B7A7 EFDE D101 CD02 4C9D 0FE0 E5E8