Chris Burrows все объяснил, причем ткнул носом в доку
Оператор

FOR v := beg TO end BY step DO statements END

эквивалентен

temp := end; v := beg;
IF step > 0 THEN
WHILE v <= temp DO statements; v := v + step END
ELSE
WHILE v >= temp DO statements; v := v + step END
END

т.е. зависон докуменирован.
> -- igor писал(а):
> Опция компилятора allchecks по умолчанию отключена.
да действительно очень нужно ее бы включить по умолчанию.
Отключать, только когда проект завершен...