summaryrefslogtreecommitdiff
path: root/compiler/codeGen/StgCmmCon.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/codeGen/StgCmmCon.hs')
-rw-r--r--compiler/codeGen/StgCmmCon.hs7
1 files changed, 4 insertions, 3 deletions
diff --git a/compiler/codeGen/StgCmmCon.hs b/compiler/codeGen/StgCmmCon.hs
index ee7b0be6f2..dd3c68e26e 100644
--- a/compiler/codeGen/StgCmmCon.hs
+++ b/compiler/codeGen/StgCmmCon.hs
@@ -34,7 +34,6 @@ import Module
import Constants
import DataCon
import FastString
-import IdInfo( CafInfo(..) )
import Id
import Literal
import PrelInfo
@@ -202,8 +201,10 @@ buildDynCon binder ccs con args
= do { let (tot_wds, ptr_wds, args_w_offsets)
= mkVirtConstrOffsets (addArgReps args)
-- No void args in args_w_offsets
- cl_info = mkConInfo False NoCafRefs con tot_wds ptr_wds
- ; (tmp, init) <- allocDynClosure cl_info use_cc blame_cc args_w_offsets
+ nonptr_wds = tot_wds - ptr_wds
+ info_tbl = mkDataConInfoTable con False ptr_wds nonptr_wds
+ ; (tmp, init) <- allocDynClosure info_tbl lf_info
+ use_cc blame_cc args_w_offsets
; regIdInfo binder lf_info tmp init }
where
lf_info = mkConLFInfo con