Libsunmath support for ieee modes and exceptions – HP SunSoft Pascal 4.0 User Manual
Page 266

242
Pascal 4.0 User’s Guide
11
libsunmath
Support for IEEE Modes and Exceptions
ieee_handler()
is used primarily to establish a signal handler for a
particular floating-point exception or group of exceptions.
The syntax of this function is described in the
ieee_handler
(3M) man page.
This following Pascal program demonstrates how to abort on division by zero.
ieee_flags()
is the recommended interface to:
•
Query or set rounding direction mode
•
Query or set rounding precision mode
•
Examine, clear, or set accrued exception flags
program TestIEEEHandler(output);
#include
procedure DivisionHandler(
sig: integer;
sip: univ_ptr;
uap: univ_ptr);
begin
writeln('Bad data - division by zero.');
end; { DivisionHandler }
var
FpAction, FpException: string;
Zero: integer := 0;
begin
FpAction := 'set';
FpException := 'division';
writeln(ieee_handler(FpAction, FpException,
addr(DivisionHandler)));
writeln('1/0 = ', 1 / Zero);
writeln(ieee_handler(FpAction, FpException, SIGFPE_DEFAULT));
writeln('1/0 = ', 1 / Zero);
end.