баги компилятора

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

баги компилятора

Сообщение Attid » 13.11.2006 19:10:38

все делал из
lazarus 0,9,20 но думаю это сюда
Free Pascal Compiler version 2.0.4 [2006/09/22] for i386





var vNum: word;
begin
WriteLn('error 1');
vNum := 1;
Write('pred(1)=');
WriteLn(Pred(vNum)); // на экране pred(1)=0
vNum := 0;
Write('pred(0)=');
WriteLn(Pred(vNum)); // на экране pred(0)=65535
ReadLn;

WriteLn('error 2');
for vNum := 0 to 0 do
WriteLn('good'); // показывается на экране
ReadLn;
for vNum := 0 to -1 do
WriteLn('bad'); // тоже показывается на экране, но не должно + зацыкливается
ReadLn;
end.


PS а нет ли какой команды аля WriteLn(VersionFpcAdnLazarus) ? чтоб проще отписывать такие баги.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение @lex » 13.11.2006 19:33:20

все делал из lazarus 0,9,20

Помоему сейчас последний оф. релиз это 0.9.18, а последний работающий без явных глюков вобще 0.9.16. Быть может это всё-таки туда? Потому что
for vNum := 0 to -1 do

Работает правильно на 100% (в FPC 2.0.4)

P.S.: А что за pred(); ? - первый раз вижу.
@lex
постоялец
 
Сообщения: 180
Зарегистрирован: 19.06.2006 13:16:29
Откуда: Невинномысск

Сообщение Attid » 13.11.2006 19:51:04

Помоему сейчас последний оф. релиз это 0.9.18,


Lazarus 0.9.20 released
Posted by Vincent on Wednesday, November 08, 2006 - 12:27 AM

Работает правильно на 100% (в FPC 2.0.4)

:/ ну лазарус же не может сам компелировать
в следующий раз буду писать в ветку лазаруса :(

А что за pred();

возращает преведущее значение т.е. vNum-1 (по крайне мере так было у борланда).
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение @lex » 13.11.2006 21:04:59

О-о-о! Круто, а я чего-то не заметил. Опять буду напрягать свой Dial-Up модем :D
А что с pred() непонятно то? word, он же от 0 до 65535, то есть до нуля он идет по кругу.
@lex
постоялец
 
Сообщения: 180
Зарегистрирован: 19.06.2006 13:16:29
Откуда: Невинномысск

Сообщение Attid » 14.11.2006 16:55:28

А что с pred() непонятно то? word, он же от 0 до 65535, то есть до нуля он идет по кругу.


должно быть -1, хотя може это у борланда не правильно :)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Sergei I. Gorelkin » 14.11.2006 17:10:47

Byte, Word, Cardinal, QWord и остальные беззнаковые типы не бывают отрицательными. Так что тут все правильно.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Attid » 15.11.2006 11:52:37

:oops: точно про word снимаю вопрос.
при переносе проэкта лазарь показывал хинт, я сменил integer на word :-/

а вот for работает не так как хочется.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru