summaryrefslogtreecommitdiff
path: root/compiler/cmm/CmmParse.y
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2015-08-03 15:31:03 +0200
committerBen Gamari <ben@smart-cactus.org>2015-08-03 17:21:52 +0200
commit64b6733e217f32feb8c4872096749c6f417d0c39 (patch)
tree1cab4eb2dbeaa5cf40789a19a65453a1395eeed5 /compiler/cmm/CmmParse.y
parent7ec6ffc4e8ccf5c24149d9ab34c3619516dc3081 (diff)
downloadhaskell-64b6733e217f32feb8c4872096749c6f417d0c39.tar.gz
CmmParse: Don't force alignment in memcpy-ish operations
This was initially made in 681973c31c614185229bdae4f6b7ab4f6e64753d. Here I wanted to enforce that the alignment passed to %memcpy was a constant expression, as this is required by LLVM. However, this breaks the knot-tying done in `loopDecls`, causing T8131 to hang. Here I remove the `seq` and mark T8131 as `expect_broken` in the case of the NCG, which doesn't force the alignment in this case. Fixes #10664.
Diffstat (limited to 'compiler/cmm/CmmParse.y')
-rw-r--r--compiler/cmm/CmmParse.y3
1 files changed, 1 insertions, 2 deletions
diff --git a/compiler/cmm/CmmParse.y b/compiler/cmm/CmmParse.y
index 9638c142d0..ea0f4a5a66 100644
--- a/compiler/cmm/CmmParse.y
+++ b/compiler/cmm/CmmParse.y
@@ -988,8 +988,7 @@ callishMachOps = listToUFM $
memcpyLikeTweakArgs :: (Int -> CallishMachOp) -> [CmmExpr] -> (CallishMachOp, [CmmExpr])
memcpyLikeTweakArgs op [] = pgmError "memcpy-like function requires at least one argument"
memcpyLikeTweakArgs op args@(_:_) =
- -- Force alignment with result to ensure pprPgmError fires
- align `seq` (op align, args')
+ (op align, args')
where
args' = init args
align = case last args of