summaryrefslogtreecommitdiff
path: root/bin86-0.3/bccfp/fperr.c
diff options
context:
space:
mode:
Diffstat (limited to 'bin86-0.3/bccfp/fperr.c')
-rw-r--r--bin86-0.3/bccfp/fperr.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/bin86-0.3/bccfp/fperr.c b/bin86-0.3/bccfp/fperr.c
new file mode 100644
index 0000000..d5372dc
--- /dev/null
+++ b/bin86-0.3/bccfp/fperr.c
@@ -0,0 +1,50 @@
+/*
+ * bin86/bccfp/fperr.c
+ *
+ * Copyright (C) 1992 Bruce Evans
+ */
+
+#include <stdio.h>
+#include <signal.h>
+
+#include "fperr.h"
+
+void fperr(errno)
+int errno;
+{
+
+#if defined(DEBUG) || 0
+ switch(errno) {
+
+ case EFDENORMAL:
+ fputs("\nDenormal - ", stderr);
+ break;
+
+ case EFINFINITY:
+ fputs("\nInfinity - ", stderr);
+ break;
+
+ case EFNAN:
+ fputs("\nNaN - ", stderr);
+ break;
+
+ case EFOVERFLOW:
+ fputs("\nOverflow - ", stderr);
+ break;
+
+ case EFUNDERFLOW:
+ fputs("\nUnderflow - ", stderr);
+ break;
+
+ case EFDIVZERO:
+ fputs("\nZero divide - ", stderr);
+ break;
+
+ default:
+ fprintf(stderr, "\nUnknown error 0x%x - ", errno);
+ }
+ fflush(stderr);
+#endif
+
+ kill(getpid(), SIGFPE);
+}