From 528db2ad98caf5067ebdadf424c6c816c3927dd4 Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Thu, 23 Sep 2010 10:58:20 +0000 Subject: [PATCH] Avoid ASSERT black hole When this ASSERT tripped in CoreToStg it tried to print out too much, which tripped the asssertion again. Result: an infinite loop with no output at all. Hard to debug! --- compiler/stgSyn/CoreToStg.lhs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/compiler/stgSyn/CoreToStg.lhs b/compiler/stgSyn/CoreToStg.lhs index 3b004c1..9ddac59 100644 --- a/compiler/stgSyn/CoreToStg.lhs +++ b/compiler/stgSyn/CoreToStg.lhs @@ -184,7 +184,11 @@ coreTopBindToStg this_pkg env body_fvs (NonRec id rhs) bind = StgNonRec id stg_rhs in - ASSERT2(consistentCafInfo id bind, ppr id {- $$ ppr rhs $$ ppr bind -} ) + ASSERT2(consistentCafInfo id bind, ppr id ) + -- NB: previously the assertion printed 'rhs' and 'bind' + -- as well as 'id', but that led to a black hole + -- where printing the assertion error tripped the + -- assertion again! (env', fvs' `unionFVInfo` body_fvs, bind) coreTopBindToStg this_pkg env body_fvs (Rec pairs) -- 1.7.10.4