X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FApply.cmm;h=0498f009b875be6bcb196fb21f27468a90e4f481;hb=8af9e46751058eecc15d0251c5e250ebcb8367da;hp=cf8a108006e59b736fde2d5645b84088e714c8df;hpb=6015a94f9108a502150565577b66c23650796639;p=ghc-hetmet.git diff --git a/rts/Apply.cmm b/rts/Apply.cmm index cf8a108..0498f00 100644 --- a/rts/Apply.cmm +++ b/rts/Apply.cmm @@ -58,7 +58,7 @@ stg_ap_0_fast -------------------------------------------------------------------------- */ INFO_TABLE(stg_PAP,/*special layout*/0,0,PAP,"PAP","PAP") -{ foreign "C" barf("PAP object entered!"); } +{ foreign "C" barf("PAP object entered!") never returns; } stg_PAP_apply { @@ -249,7 +249,9 @@ INFO_TABLE(stg_AP_STACK,/*special layout*/0,0,AP_STACK,"AP_STACK","AP_STACK") * closure, in which case we must enter the blackhole on return rather * than continuing to evaluate the now-defunct closure. */ - STK_CHK_NP(WDS(Words) + SIZEOF_StgUpdateFrame); + STK_CHK_NP(WDS(Words) + SIZEOF_StgUpdateFrame + WDS(AP_STACK_SPLIM)); + /* ensure there is at least AP_STACK_SPLIM words of headroom available + * after unpacking the AP_STACK. See bug #1466 */ PUSH_UPD_FRAME(Sp - SIZEOF_StgUpdateFrame, R1); Sp = Sp - SIZEOF_StgUpdateFrame - WDS(Words);