add return statements after errors
[unix-history] / usr / src / usr.bin / pascal / libpc / EXCEPT.c
CommitLineData
7fce2fad
KM
1/* Copyright (c) 1982 Regents of the University of California */
2
0cd5292b 3static char sccsid[] = "@(#)EXCEPT.c 1.2 %G%";
7fce2fad
KM
4
5#include <signal.h>
6#include "whoami.h"
7
8/*
9 * catch runtime arithmetic errors
10 */
11EXCEPT(signum, type)
12 int signum, type;
13{
14 signal(SIGFPE, EXCEPT);
15#ifndef VAX
16 ERROR("Overflow, underflow, or division by zero in arithmetic operation\n");
0cd5292b 17 return;
7fce2fad 18#else
0cd5292b
KM
19 /*
20 * The values for this switch statement come from page 12-5 of
21 * Volume 1 of the 1978 VAX 11/780 Architecture Handbook
22 */
7fce2fad
KM
23 switch (type) {
24 case 1:
25 ERROR("Integer overflow\n");
0cd5292b 26 return;
7fce2fad
KM
27 case 2:
28 ERROR("Integer division by zero\n");
0cd5292b 29 return;
7fce2fad
KM
30 case 3:
31 ERROR("Real overflow\n");
0cd5292b 32 return;
7fce2fad
KM
33 case 4:
34 ERROR("Real division by zero\n");
0cd5292b 35 return;
7fce2fad
KM
36 case 5:
37 ERROR("Real underflow\n");
0cd5292b 38 return;
7fce2fad
KM
39 default:
40 ERROR("Panic: Computational error in interpreter\n");
0cd5292b 41 return;
7fce2fad
KM
42 }
43#endif
44}