summaryrefslogtreecommitdiff
path: root/ghc/compiler/codeGen
diff options
context:
space:
mode:
authorsimonm <unknown>1999-01-22 10:10:41 +0000
committersimonm <unknown>1999-01-22 10:10:41 +0000
commite5efd651e7e80cd3549304578a1e1685e91d3d0a (patch)
tree8aba1be4f86f2a2a76e88aa3fb170082b8c6bef3 /ghc/compiler/codeGen
parent4864e32ad1c683c7fc569d6aa5f2c605076abdbe (diff)
downloadhaskell-e5efd651e7e80cd3549304578a1e1685e91d3d0a.tar.gz
[project @ 1999-01-22 10:10:41 by simonm]
Fix two uses of [ e1 .. e2 ] in light of the new Haskell 98 semantics.
Diffstat (limited to 'ghc/compiler/codeGen')
-rw-r--r--ghc/compiler/codeGen/CgBindery.lhs9
1 files changed, 5 insertions, 4 deletions
diff --git a/ghc/compiler/codeGen/CgBindery.lhs b/ghc/compiler/codeGen/CgBindery.lhs
index 459938ddf7..49b907e2e2 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