Avoid ASSERT black hole
authorsimonpj@microsoft.com <unknown>
Thu, 23 Sep 2010 10:58:20 +0000 (10:58 +0000)
committersimonpj@microsoft.com <unknown>
Thu, 23 Sep 2010 10:58:20 +0000 (10:58 +0000)
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

index 3b004c1..9ddac59 100644 (file)
@@ -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)