summaryrefslogtreecommitdiff
path: root/compiler/cmm/CmmParse.y
diff options
context:
space:
mode:
authorEdward Z. Yang <ezyang@mit.edu>2013-08-28 22:07:07 -0700
committerEdward Z. Yang <ezyang@cs.stanford.edu>2014-10-01 22:26:38 -0700
commit178eb9060f369b216f3f401196e28eab4af5624d (patch)
treefc13a84d0724345459b1a0086055fb388803dd16 /compiler/cmm/CmmParse.y
parent3b5a840bba375c4c4c11ccfeb283f84c3a1ef22c (diff)
downloadhaskell-178eb9060f369b216f3f401196e28eab4af5624d.tar.gz
Properly generate info tables for static closures in C--.
Summary: Previously, we assumed all objects declared in C-- were not-static, even ones which were CONSTR_NOCAF_STATIC. This used to be harmless, but now we need this information to be correct. Part of remove HEAP_ALLOCED patch set (#8199) Depends on D264 Signed-off-by: Edward Z. Yang <ezyang@mit.edu> Test Plan: validate Reviewers: simonmar, austin Subscribers: simonmar, ezyang, carter, thomie Differential Revision: https://phabricator.haskell.org/D265 GHC Trac Issues: #8199
Diffstat (limited to 'compiler/cmm/CmmParse.y')
-rw-r--r--compiler/cmm/CmmParse.y3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/cmm/CmmParse.y b/compiler/cmm/CmmParse.y
index 3bd0053cfc..31b1198e0f 100644
--- a/compiler/cmm/CmmParse.y
+++ b/compiler/cmm/CmmParse.y
@@ -496,7 +496,8 @@ info :: { CmmParse (CLabel, Maybe CmmInfoTable, [LocalReg]) }
ty = Constr (fromIntegral $9) -- Tag
(stringToWord8s $13)
rep = mkRTSRep (fromIntegral $11) $
- mkHeapRep dflags False (fromIntegral $5)
+ mkHeapRep dflags (fromIntegral $11 == cONSTR_NOCAF_STATIC)
+ (fromIntegral $5)
(fromIntegral $7) ty
return (mkCmmEntryLabel pkg $3,
Just $ CmmInfoTable { cit_lbl = mkCmmInfoLabel pkg $3