diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2018-02-10 19:53:27 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2018-02-10 19:53:27 +0200 |
commit | 8c0f1dcdd4a05a002ae01f586bc0b5386db903d4 (patch) | |
tree | 675a1989e78731be2ed770ee886480ec0a346c9a /main.c | |
parent | 29141665ddc8055d197652e59a512147f1dcf574 (diff) | |
download | egawk-8c0f1dcdd4a05a002ae01f586bc0b5386db903d4.tar.gz egawk-8c0f1dcdd4a05a002ae01f586bc0b5386db903d4.tar.bz2 egawk-8c0f1dcdd4a05a002ae01f586bc0b5386db903d4.zip |
Do fflush(NULL) before abort(), for GLIBC 2.27.
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -1226,6 +1226,8 @@ catchsig(int sig) set_loc(__FILE__, __LINE__); msg(_("fatal error: internal error")); /* fatal won't abort() if not compiled for debugging */ + // GLIBC 2.27 doesn't necessarily flush on abort. Sigh. + fflush(NULL); abort(); } else cant_happen(); @@ -1240,6 +1242,7 @@ catchsegv(void *fault_address, int serious) { set_loc(__FILE__, __LINE__); msg(_("fatal error: internal error: segfault")); + fflush(NULL); abort(); /*NOTREACHED*/ return 0; @@ -1252,6 +1255,7 @@ catchstackoverflow(int emergency, stackoverflow_context_t scp) { set_loc(__FILE__, __LINE__); msg(_("fatal error: internal error: stack overflow")); + fflush(NULL); abort(); /*NOTREACHED*/ return; |