X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FRtsMessages.c;h=a6906148f16cfa330dd7165f55543a33b472ec2e;hb=c4aefec7092fcd183f63d3990147c03bfa6c180f;hp=60173c1b7c101a52336ad02508e8802ff8f31df4;hpb=6317d554cb806e1eb03af252dc9744ae4dce10a1;p=ghc-hetmet.git diff --git a/ghc/rts/RtsMessages.c b/ghc/rts/RtsMessages.c index 60173c1..a690614 100644 --- a/ghc/rts/RtsMessages.c +++ b/ghc/rts/RtsMessages.c @@ -46,6 +46,12 @@ vbarf(char *s, va_list ap) stg_exit(EXIT_INTERNAL_ERROR); // just in case fatalInternalErrorFn() returns } +void +_assertFail(char *filename, unsigned int linenum) +{ + barf("ASSERTION FAILED: file %s, line %u\n", filename, linenum); +} + void errorBelch(char *s, ...) { @@ -108,21 +114,15 @@ rtsFatalInternalErrorFn(char *s, va_list ap) if (isGUIApp()) { char title[BUFSIZE], message[BUFSIZE]; - int r; - r = vsnprintf(title, BUFSIZE, "%s: internal error", prog_name); - if (r > 0 && r < BUFSIZE) { - strcpy(title, "internal error"); - } + snprintf(title, BUFSIZE, "%s: internal error", prog_name); + vsnprintf(message, BUFSIZE, s, ap); - r = vsnprintf(message, BUFSIZE, s, ap); - if (r > 0 && r < BUFSIZE) { - MessageBox(NULL /* hWnd */, - message, - title, - MB_OK | MB_ICONERROR | MB_TASKMODAL - ); - }; + MessageBox(NULL /* hWnd */, + message, + title, + MB_OK | MB_ICONERROR | MB_TASKMODAL + ); } else #endif @@ -139,7 +139,8 @@ rtsFatalInternalErrorFn(char *s, va_list ap) fflush(stderr); } - stg_exit(EXIT_INTERNAL_ERROR); + abort(); + // stg_exit(EXIT_INTERNAL_ERROR); } void