diff options
author | Ben Gamari <ben@smart-cactus.org> | 2015-08-03 15:31:03 +0200 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2015-08-03 17:21:52 +0200 |
commit | 64b6733e217f32feb8c4872096749c6f417d0c39 (patch) | |
tree | 1cab4eb2dbeaa5cf40789a19a65453a1395eeed5 /compiler/cmm/CmmParse.y | |
parent | 7ec6ffc4e8ccf5c24149d9ab34c3619516dc3081 (diff) | |
download | haskell-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.y | 3 |
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 |