summaryrefslogtreecommitdiffstats
path: root/contrib/libf2c/libF77/sig_die.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libf2c/libF77/sig_die.c')
-rw-r--r--contrib/libf2c/libF77/sig_die.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/contrib/libf2c/libF77/sig_die.c b/contrib/libf2c/libF77/sig_die.c
new file mode 100644
index 0000000..622462e
--- /dev/null
+++ b/contrib/libf2c/libF77/sig_die.c
@@ -0,0 +1,37 @@
+#include <stdio.h>
+#include <signal.h>
+
+#ifndef SIGIOT
+#ifdef SIGABRT
+#define SIGIOT SIGABRT
+#endif
+#endif
+
+#include <stdlib.h>
+extern void f_exit (void);
+
+void
+sig_die (register char *s, int kill)
+{
+ /* print error message, then clear buffers */
+ fprintf (stderr, "%s\n", s);
+
+ if (kill)
+ {
+ fflush (stderr);
+ f_exit ();
+ fflush (stderr);
+ /* now get a core */
+#ifdef SIGIOT
+ signal (SIGIOT, SIG_DFL);
+#endif
+ abort ();
+ }
+ else
+ {
+#ifdef NO_ONEXIT
+ f_exit ();
+#endif
+ exit (1);
+ }
+}
OpenPOWER on IntegriCloud