diff options
Diffstat (limited to 'ghc/compiler/codeGen')
| -rw-r--r-- | ghc/compiler/codeGen/CgConTbls.lhs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/ghc/compiler/codeGen/CgConTbls.lhs b/ghc/compiler/codeGen/CgConTbls.lhs index 12c50649ff..99d286ea7c 100644 --- a/ghc/compiler/codeGen/CgConTbls.lhs +++ b/ghc/compiler/codeGen/CgConTbls.lhs @@ -12,7 +12,7 @@ import AbsCSyn import CgMonad import StgSyn ( SRT(..) ) -import AbsCUtils ( mkAbstractCs ) +import AbsCUtils ( mkAbstractCs, mkAbsCStmts ) import CgTailCall ( performReturn, mkStaticAlgReturnCode ) import CLabel ( mkConEntryLabel, mkStaticClosureLabel ) import ClosureInfo ( layOutStaticClosure, layOutDynCon, @@ -24,7 +24,7 @@ import DataCon ( DataCon, dataConName, dataConRawArgTys ) import Const ( Con(..) ) import Name ( getOccString ) import PrimRep ( getPrimRepSize, PrimRep(..) ) -import TyCon ( tyConDataCons, TyCon ) +import TyCon ( tyConDataCons, isEnumerationTyCon, TyCon ) import Type ( typePrimRep, Type ) import BasicTypes ( TopLevelFlag(..) ) import Outputable @@ -96,7 +96,13 @@ genStaticConBits comp_info gen_tycons tycon_specs where gen_for_tycon :: TyCon -> AbstractC gen_for_tycon tycon - = mkAbstractCs (map (genConInfo comp_info tycon) (tyConDataCons tycon)) + = mkAbstractCs (map (genConInfo comp_info tycon) (tyConDataCons tycon)) + `mkAbsCStmts` ( + -- after the con decls, so we don't need to declare the constructor labels + if (isEnumerationTyCon tycon) + then CClosureTbl tycon + else AbsCNop + ) \end{code} %************************************************************************ |
