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, ...)
{
}
#endif
+#define xstr(s) str(s)
+#define str(s) #s
+
void
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
}
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, " (GHC version %s for %s)\n", ProjectVersion, xstr(HostPlatform_TYPE));
+ fprintf(stderr, " Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug\n");
fflush(stderr);
}
- stg_exit(EXIT_INTERNAL_ERROR);
+ abort();
+ // stg_exit(EXIT_INTERNAL_ERROR);
}
void