summaryrefslogtreecommitdiff
path: root/compiler/codeGen
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2013-07-24 12:49:58 +0100
committerSimon Marlow <marlowsd@gmail.com>2013-07-24 14:30:35 +0100
commitc23488590cd65fa584ddd648cdbab2fa13f5656b (patch)
tree499ed8a8b2cc3ec261f16df03f0c06b1e29aae49 /compiler/codeGen
parentbe89c675339982cb53a5e32d6d282410c9c50f7c (diff)
downloadhaskell-c23488590cd65fa584ddd648cdbab2fa13f5656b.tar.gz
Fix a bug in stack layout with safe foreign calls (#8083)
We weren't properly tracking the number of stack arguments in the continuation of a foreign call. It happened to work when the continuation was not a join point, but when it was a join point we were using the wrong amount of stack fixup.
Diffstat (limited to 'compiler/codeGen')
-rw-r--r--compiler/codeGen/StgCmmForeign.hs3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/codeGen/StgCmmForeign.hs b/compiler/codeGen/StgCmmForeign.hs
index 30bd46318a..0b782fffcc 100644
--- a/compiler/codeGen/StgCmmForeign.hs
+++ b/compiler/codeGen/StgCmmForeign.hs
@@ -225,7 +225,8 @@ emitForeignCall safety results target args
, res = results
, args = args'
, succ = k
- , updfr = updfr_off
+ , ret_args = off
+ , ret_off = updfr_off
, intrbl = playInterruptible safety })
<*> mkLabel k
<*> copyout