summaryrefslogtreecommitdiff
path: root/rts/sm/MarkWeak.h
diff options
context:
space:
mode:
authorTakano Akio <tak@anoak.io>2016-05-11 14:45:29 +0200
committerBen Gamari <ben@smart-cactus.org>2016-05-11 14:46:48 +0200
commit9363f04d0ff22f3d898af35bb5432c4287e6dc9a (patch)
tree0e80d6c88760bf61ac29da655c1c3356c1c80545 /rts/sm/MarkWeak.h
parent0efbf18b80c261708da9ef61bcd420fa94cfed42 (diff)
downloadhaskell-9363f04d0ff22f3d898af35bb5432c4287e6dc9a.tar.gz
Handle promotion failures when scavenging a WEAK (#11108)
Previously, we ignored promotion failures when evacuating fields of a WEAK object. When a failure happens, this resulted in an WEAK object pointing to another object in a younger generation, causing crashes. I used the test case from #11746 to check that the fix is working. However I haven't managed to produce a test case that quickly reproduces the issue. Test Plan: ./validate Reviewers: austin, bgamari, simonmar Reviewed By: simonmar Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2189 GHC Trac Issues: #11108
Diffstat (limited to 'rts/sm/MarkWeak.h')
-rw-r--r--rts/sm/MarkWeak.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/rts/sm/MarkWeak.h b/rts/sm/MarkWeak.h
index bd0231d74c..aabb954496 100644
--- a/rts/sm/MarkWeak.h
+++ b/rts/sm/MarkWeak.h
@@ -24,6 +24,7 @@ void collectFreshWeakPtrs ( void );
void initWeakForGC ( void );
rtsBool traverseWeakPtrList ( void );
void markWeakPtrList ( void );
+void scavengeLiveWeak ( StgWeak * );
#include "EndPrivate.h"