lossage_handler = handler;
}
-never_returns
+void
lose(char *fmt, ...)
{
va_list ap;
fprintf(stderr, "fatal error encountered in SBCL pid %d",getpid());
#if defined(LISP_FEATURE_SB_THREAD)
- fprintf(stderr, "(tid %ld)",thread_self());
+ fprintf(stderr, "(tid %lu)",thread_self());
#endif
if (fmt) {
fprintf(stderr, ":\n");
{
/* This is a kludge. It's not actually safe - in general - to use
%primitive print on the alpha, because it skips half of the
- number stack setup that should usually be done on a function call,
- so the called routine (i.e. this one) ends up being able to overwrite
- local variables in the caller. Rather than fix this everywhere
- that %primitive print is used (it's only a debugging aid anyway)
- we just put guarantee our safety by putting an unused buffer on
- the stack before doing anything else here */
- char untouched[32]; /* GCC warns about not using this, but that's the point.. */
+ number stack setup that should usually be done on a function
+ call, so the called routine (i.e. this one) ends up being able
+ to overwrite local variables in the caller. Rather than fix
+ this everywhere that %primitive print is used (it's only a
+ debugging aid anyway) we just guarantee our safety by putting
+ an unused buffer on the stack before doing anything else
+ here */
+ char untouched[32];
fprintf(stderr, "%s\n",
- (char *)(((struct vector *)native_pointer(string))->data),untouched);
+ (char *)(((struct vector *)native_pointer(string))->data));
+ /* shut GCC up about not using this, because that's the point.. */
+ if (untouched);
return NIL;
}