summaryrefslogtreecommitdiff
path: root/libc/i386fp/fperr.c
diff options
context:
space:
mode:
Diffstat (limited to 'libc/i386fp/fperr.c')
-rw-r--r--libc/i386fp/fperr.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/libc/i386fp/fperr.c b/libc/i386fp/fperr.c
new file mode 100644
index 0000000..fa1633e
--- /dev/null
+++ b/libc/i386fp/fperr.c
@@ -0,0 +1,44 @@
+#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);
+}