EDivByZero вместо EOverflow на linux

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

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

EDivByZero вместо EOverflow на linux

Сообщение Kitayets » 25.11.2021 22:50:21

на linux (в данном случае ubuntu 20.04) freepascal (в данном случае 3.0.4+dfsg-23) на простейшей программе бросает не то исключение :(

минимальная программа:
Код: Выделить всё
program float_overflow;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes
  { you can add units after this };
var
  z: single = 0.0;
  b: single = 1.0e30;
  c: single = 1.0e30;
begin
  z:= b*c;
  writeln(z);
  readln;
end.


на ubuntu вот такое:

Код: Выделить всё
yr@E525:~/ME/projects/lazarus/test1$ ./float_overflow
An unhandled exception occurred at $000000000040109B:
EDivByZero: Division by zero
  $000000000040109B


на виндовс 10 x64 (fpc 3.2) все как в аптеке:

Код: Выделить всё
E:\tmp\pas_tests>float_overflow.exe
An unhandled exception occurred at $00000001000016DA:
EOverflow: Floating point overflow
  $00000001000016DA  main,  line 16 of float_overflow.lpr


почему так?
Kitayets
постоялец
 
Сообщения: 169
Зарегистрирован: 05.05.2010 21:15:24

Re: EDivByZero вместо EOverflow на linux

Сообщение Vadim » 26.11.2021 02:27:09

Kitayets писал(а):почему так?

Тонкий намёк на смену версии компилятора в сторону более новой... ;-)
Vadim
долгожитель
 
Сообщения: 3987
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск


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

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

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

Рейтинг@Mail.ru