From 7fce2fad96d5db8c70424345bc2785916a8d61c3 Mon Sep 17 00:00:00 2001 From: Kirk McKusick Date: Wed, 3 Feb 1982 07:09:47 -0800 Subject: [PATCH] date and time created 82/02/02 23:09:47 by mckusick SCCS-vsn: usr.bin/pascal/libpc/EXCEPT.c 1.1 --- usr/src/usr.bin/pascal/libpc/EXCEPT.c | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 usr/src/usr.bin/pascal/libpc/EXCEPT.c diff --git a/usr/src/usr.bin/pascal/libpc/EXCEPT.c b/usr/src/usr.bin/pascal/libpc/EXCEPT.c new file mode 100644 index 0000000000..1359f8dc9f --- /dev/null +++ b/usr/src/usr.bin/pascal/libpc/EXCEPT.c @@ -0,0 +1,33 @@ +/* Copyright (c) 1982 Regents of the University of California */ + +static char sccsid[] = "@(#)EXCEPT.c 1.1 %G%"; + +#include +#include "whoami.h" + +/* + * catch runtime arithmetic errors + */ +EXCEPT(signum, type) + int signum, type; +{ + signal(SIGFPE, EXCEPT); +#ifndef VAX + ERROR("Overflow, underflow, or division by zero in arithmetic operation\n"); +#else + switch (type) { + case 1: + ERROR("Integer overflow\n"); + case 2: + ERROR("Integer division by zero\n"); + case 3: + ERROR("Real overflow\n"); + case 4: + ERROR("Real division by zero\n"); + case 5: + ERROR("Real underflow\n"); + default: + ERROR("Panic: Computational error in interpreter\n"); + } +#endif +} -- 2.20.1