From 579bc757533c8c9e5beabe5b21daddd922c1af75 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Fri, 23 May 2008 03:25:08 +0000 Subject: [PATCH] Do some stack fiddling in stg_unblockAsyncExceptionszh_ret This fixes a segfault in #1657 --- rts/Exception.cmm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rts/Exception.cmm b/rts/Exception.cmm index daa8e4f..75f2c15 100644 --- a/rts/Exception.cmm +++ b/rts/Exception.cmm @@ -73,6 +73,14 @@ INFO_TABLE_RET( stg_unblockAsyncExceptionszh_ret, RET_SMALL ) */ Sp_adj(1); #endif + STK_CHK_GEN( WDS(2), R1_PTR, stg_unblockAsyncExceptionszh_ret_info); + Sp_adj(-2); + Sp(1) = R1; +#ifdef REG_R1 + Sp(0) = stg_gc_unpt_r1_info; +#else + Sp(0) = stg_ut_1_0_unreg_info; +#endif SAVE_THREAD_STATE(); (r) = foreign "C" maybePerformBlockedException (MyCapability() "ptr", CurrentTSO "ptr") [R1]; -- 1.7.10.4