Annotation of 43BSD/usr.lib/libpc/EXCEPT.c, revision 1.1.1.1

1.1       root        1: /* Copyright (c) 1982 Regents of the University of California */
                      2: 
                      3: static char sccsid[] = "@(#)EXCEPT.c 1.4 10/1/83";
                      4: 
                      5: #include       <signal.h>
                      6: 
                      7: /*
                      8:  * catch runtime arithmetic errors
                      9:  */
                     10: EXCEPT(signum, type)
                     11:        int signum, type;
                     12: {
                     13:        signal(SIGFPE, EXCEPT);
                     14: #ifndef vax
                     15:        ERROR("Overflow, underflow, or division by zero in arithmetic operation\n");
                     16:        return;
                     17: #endif notvax
                     18: #ifdef vax
                     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:         */
                     23:        switch (type) {
                     24:        case FPE_INTOVF_TRAP:
                     25:                ERROR("Integer overflow\n");
                     26:                return;
                     27:        case FPE_INTDIV_TRAP:
                     28:                ERROR("Integer division by zero\n");
                     29:                return;
                     30:        case FPE_FLTOVF_TRAP:
                     31:        case FPE_FLTOVF_FAULT:
                     32:                ERROR("Real overflow\n");
                     33:                return;
                     34:        case FPE_FLTDIV_TRAP:
                     35:        case FPE_FLTDIV_FAULT:
                     36:                ERROR("Real division by zero\n");
                     37:                return;
                     38:        case FPE_FLTUND_TRAP:
                     39:        case FPE_FLTUND_FAULT:
                     40:                ERROR("Real underflow\n");
                     41:                return;
                     42:        case FPE_DECOVF_TRAP:
                     43:        case FPE_SUBRNG_TRAP:
                     44:        default:
                     45:                ERROR("Undefined arithmetic exception type (%d)\n", type);
                     46:                return;
                     47:        }
                     48: #endif vax
                     49: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.