Есть код:
- Код: Выделить всё
for i := 0 to 10 do
Continue;
Writeln('Result: ', i);
На Delphi 2007:
- Код: Выделить всё
Result: 11
На FPC:
- Код: Выделить всё
Result: 10
То есть, в Delphi в конце цикла идет увеличение переменной и потом выход из него, в FPC сразу выход из цикла.
Все бы логично, и Delphi предупреждает, что переменная 'i' может быть неопределенной после цикла.
Суть в том, что есть крупный проект, в котором часто использовали такой трюк Delphi и сейчас возникла проблема с поиском и устранением этих трюков на FPC.
Код выше, при компиляции в Delphi, выдает предупреждение: W1037 Variable 'i' may be undefined after loop.
А FPC никаких предупреждений не выводит и по сути отлов таких мест становится затруднительным.
Но иногда и Delphi чудит, видоизменяем код на такой:
- Код: Выделить всё
for i := 0 to 10 do
if i < 15 then
Continue
else
Break;
Writeln('Result: ', i);
... теперь и Delphi не видит в этом коде проблем. Предупреждения нет.
Есть ли возможность что-то включить в FPC, чтобы эти ошибки появились?