Commit b2e840ee authored by Simon Marlow's avatar Simon Marlow

Add a missing UNTAG_CLOSURE, causing bus errors on Sparc

We just about got away with this on x86 which isn't
alignment-sensitive.  The result of the memory load is compared
against a few different values, but there is a fallback case that
happened to be the right thing when the pointer was tagged.  A good
bug to find, nonetheless.
parent c5e611c7
......@@ -183,9 +183,10 @@ nat messageBlackHole(Capability *cap, MessageBlackHole *msg)
return 0;
}
// we know at this point that the closure
// The blackhole must indirect to a TSO, a BLOCKING_QUEUE, an IND,
// or a value.
loop:
p = ((StgInd*)bh)->indirectee;
p = UNTAG_CLOSURE(((StgInd*)bh)->indirectee);
info = p->header.info;
if (info == &stg_IND_info)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment