diff options
| author | simonm <unknown> | 1999-01-22 10:10:41 +0000 |
|---|---|---|
| committer | simonm <unknown> | 1999-01-22 10:10:41 +0000 |
| commit | e5efd651e7e80cd3549304578a1e1685e91d3d0a (patch) | |
| tree | 8aba1be4f86f2a2a76e88aa3fb170082b8c6bef3 /ghc/compiler/codeGen | |
| parent | 4864e32ad1c683c7fc569d6aa5f2c605076abdbe (diff) | |
| download | haskell-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.lhs | 9 |
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 |
