/* -----------------------------------------------------------------------------
- * $Id: StgMiscClosures.hc,v 1.43 2000/04/19 10:51:59 simonmar Exp $
+ * $Id: StgMiscClosures.hc,v 1.47 2000/08/02 14:13:28 rrt Exp $
*
* (c) The GHC Team, 1998-2000
*
#include <stdio.h>
#endif
-/* ToDo: make the printing of panics more Win32-friendly, i.e.,
+/* ToDo: make the printing of panics more win32-friendly, i.e.,
* pop up some lovely message boxes (as well).
*/
#define DUMP_ERRMSG(msg) STGCALL2(fprintf,stderr,msg)
FB_ \
DUMP_ERRMSG(#type " object entered!\n"); \
STGCALL1(shutdownHaskellAndExit, EXIT_FAILURE); \
+ return NULL; \
FE_ \
}
/* -----------------------------------------------------------------------------
Entry code for an indirection.
-
- This code assumes R1 is in a register for now.
-------------------------------------------------------------------------- */
INFO_TABLE(IND_info,IND_entry,1,0,IND,,EF_,0,0);
{
FB_
TICK_ENT_IND(Node); /* tick */
-
R1.p = (P_) ((StgIndStatic*)R1.p)->indirectee;
TICK_ENT_VIA_NODE();
JMP_(ENTRY_CODE(*R1.p));
This is used for filling in vector-table entries that can never happen,
for instance.
-------------------------------------------------------------------------- */
-
+/* No longer used; we use NULL, because a) it never happens, right? and b)
+ Windows doesn't like DLL entry points being used as static initialisers
STGFUN(stg_error_entry) \
{ \
FB_ \
DUMP_ERRMSG("fatal: stg_error_entry"); \
STGCALL1(shutdownHaskellAndExit, EXIT_FAILURE); \
+ return NULL; \
FE_ \
}
-
+*/
/* -----------------------------------------------------------------------------
Dummy return closure