X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=ghc%2Frts%2FRtsMessages.c;h=9f36e2e97d201393be5116bb79c601c49fb3f827;hb=a2a6d28ccbdbbf21a09b2975347f681755ddf7f0;hp=60173c1b7c101a52336ad02508e8802ff8f31df4;hpb=6317d554cb806e1eb03af252dc9744ae4dce10a1;p=ghc-hetmet.git diff --git a/ghc/rts/RtsMessages.c b/ghc/rts/RtsMessages.c index 60173c1..9f36e2e 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 @@ -135,11 +135,12 @@ rtsFatalInternalErrorFn(char *s, va_list ap) } vfprintf(stderr, s, ap); fprintf(stderr, "\n"); - fprintf(stderr, " Please report this as a bug to glasgow-haskell-bugs@haskell.org,\n or http://www.sourceforge.net/projects/ghc/\n"); + fprintf(stderr, " Please report this as a compiler bug. See:\n http://www.haskell.org/ghc/reportabug\n"); fflush(stderr); } - stg_exit(EXIT_INTERNAL_ERROR); + abort(); + // stg_exit(EXIT_INTERNAL_ERROR); } void