[project @ 2006-01-03 12:16:26 by simonmar]
[ghc-hetmet.git] / ghc / rts / RtsMessages.c
index 60173c1..9f36e2e 100644 (file)
@@ -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