summaryrefslogtreecommitdiff
path: root/includes/stg/MiscClosures.h
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2013-11-21 11:28:13 +0000
committerSimon Marlow <marlowsd@gmail.com>2013-11-21 13:27:34 +0000
commite82fa82933e6984c5b9507a0d857b0c579bd0f46 (patch)
treec2fc68c44afdf36bb84014a511807567f42fdec3 /includes/stg/MiscClosures.h
parentef89860cb51f4d456caf924f9f9075b2b95ccc52 (diff)
downloadhaskell-e82fa82933e6984c5b9507a0d857b0c579bd0f46.tar.gz
In the DEBUG rts, track when CAFs are GC'd
This resurrects some old code and makes it work again. The idea is that we want to get an error message if we ever enter a CAF that has been GC'd, rather than following its indirection which will likely cause a segfault. Without this patch, these bugs are hard to track down in gdb, because the IND_STATIC code overwrites R1 (the pointer to the CAF) with its indirectee before jumping into bad memory, so we've lost the address of the CAF that got GC'd. Some associated refactoring while I was here.
Diffstat (limited to 'includes/stg/MiscClosures.h')
-rw-r--r--includes/stg/MiscClosures.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/includes/stg/MiscClosures.h b/includes/stg/MiscClosures.h
index d36c70d114..fdd50eba8f 100644
--- a/includes/stg/MiscClosures.h
+++ b/includes/stg/MiscClosures.h
@@ -115,6 +115,7 @@ RTS_ENTRY(stg_MUT_ARR_PTRS_FROZEN0);
RTS_ENTRY(stg_MUT_VAR_CLEAN);
RTS_ENTRY(stg_MUT_VAR_DIRTY);
RTS_ENTRY(stg_END_TSO_QUEUE);
+RTS_ENTRY(stg_GCD_CAF);
RTS_ENTRY(stg_STM_AWOKEN);
RTS_ENTRY(stg_MSG_TRY_WAKEUP);
RTS_ENTRY(stg_MSG_THROWTO);