projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Properly parse GC blocks for functions with info tables
[ghc-hetmet.git]
/
compiler
/
cmm
/
CmmParse.y
diff --git
a/compiler/cmm/CmmParse.y
b/compiler/cmm/CmmParse.y
index
da80702
..
2cf1d1d
100644
(file)
--- a/
compiler/cmm/CmmParse.y
+++ b/
compiler/cmm/CmmParse.y
@@
-210,7
+210,7
@@
cmmproc :: { ExtCode }
$6;
return (info_lbl, info, live, formals, frame, gc_block) }
blks <- code (cgStmtsToBlocks stmts)
$6;
return (info_lbl, info, live, formals, frame, gc_block) }
blks <- code (cgStmtsToBlocks stmts)
- code (emitInfoTableAndCode info_lbl (CmmInfo Nothing frame info) formals blks) }
+ code (emitInfoTableAndCode info_lbl (CmmInfo gc_block frame info) formals blks) }
| info maybe_formals ';'
{ do (info_lbl, info, live) <- $1;
| info maybe_formals ';'
{ do (info_lbl, info, live) <- $1;
@@
-866,6
+866,7
@@
foreignCall conv_string results_code expr_code args_code vols safety
results <- sequence results_code
expr <- expr_code
args <- sequence args_code
results <- sequence results_code
expr <- expr_code
args <- sequence args_code
+ --code (stmtC (CmmCall (CmmForeignCall expr convention) results args safety))
case convention of
-- Temporary hack so at least some functions are CmmSafe
CmmCallConv -> code (stmtC (CmmCall (CmmForeignCall expr convention) results args safety))
case convention of
-- Temporary hack so at least some functions are CmmSafe
CmmCallConv -> code (stmtC (CmmCall (CmmForeignCall expr convention) results args safety))