From e5efd651e7e80cd3549304578a1e1685e91d3d0a Mon Sep 17 00:00:00 2001 From: simonm Date: Fri, 22 Jan 1999 10:10:41 +0000 Subject: [PATCH 1/1] [project @ 1999-01-22 10:10:41 by simonm] Fix two uses of [ e1 .. e2 ] in light of the new Haskell 98 semantics. --- ghc/compiler/codeGen/CgBindery.lhs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ghc/compiler/codeGen/CgBindery.lhs b/ghc/compiler/codeGen/CgBindery.lhs index 459938d..49b907e 100644 --- a/ghc/compiler/codeGen/CgBindery.lhs +++ b/ghc/compiler/codeGen/CgBindery.lhs @@ -460,10 +460,11 @@ buildLivenessMask uniq sp info_down where -- find all unboxed stack-resident ids unboxed_slots = - [ (ofs, getPrimRepSize rep) | + [ (ofs, size) | (MkCgIdInfo id _ (VirStkLoc ofs) _) <- rngVarEnv binds, - let rep = idPrimRep id, - not (isFollowableRep rep) + let rep = idPrimRep id; size = getPrimRepSize rep, + not (isFollowableRep rep), + size > 0 ] -- flatten this list into a list of unboxed stack slots @@ -581,7 +582,7 @@ dead_slots live_vars fbs ds ((v,i):bs) | otherwise = case i of MkCgIdInfo _ _ stable_loc _ - | is_stk_loc -> + | is_stk_loc && size > 0 -> dead_slots live_vars fbs ([offset-size+1 .. offset] ++ ds) bs where maybe_stk_loc = maybeStkLoc stable_loc -- 1.7.10.4