Annotation of 43BSDTahoe/usr.lib/libpc/EXCEPT.c, revision 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.