diff options
author | Ben Gamari <ben@smart-cactus.org> | 2017-11-14 17:34:36 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2017-11-28 09:55:59 -0500 |
commit | 17e71c14fee6bc068cf081abfc1abd0470e84c66 (patch) | |
tree | 0cae2f79e29a819d777a7dd60538327f79d49704 /compiler/cmm/CLabel.hs | |
parent | 54fda257d4a7bfddaa0c1fa0be698d1a849c4124 (diff) | |
download | haskell-17e71c14fee6bc068cf081abfc1abd0470e84c66.tar.gz |
CLabel.labelType: Make catch-all case explicit
Diffstat (limited to 'compiler/cmm/CLabel.hs')
-rw-r--r-- | compiler/cmm/CLabel.hs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/compiler/cmm/CLabel.hs b/compiler/cmm/CLabel.hs index 81d00f4fdf..bb49d87a6f 100644 --- a/compiler/cmm/CLabel.hs +++ b/compiler/cmm/CLabel.hs @@ -887,6 +887,7 @@ isGcPtrLabel lbl = case labelType lbl of -- | Work out the general type of data at the address of this label -- whether it be code, data, or static GC object. labelType :: CLabel -> CLabelType +labelType (IdLabel _ _ info) = idInfoLabelType info labelType (CmmLabel _ _ CmmData) = DataLabel labelType (CmmLabel _ _ CmmClosure) = GcPtrLabel labelType (CmmLabel _ _ CmmCode) = CodeLabel @@ -898,12 +899,22 @@ labelType (CmmLabel _ _ CmmRet) = CodeLabel labelType (RtsLabel (RtsSelectorInfoTable _ _)) = DataLabel labelType (RtsLabel (RtsApInfoTable _ _)) = DataLabel labelType (RtsLabel (RtsApFast _)) = CodeLabel +labelType (RtsLabel _) = DataLabel +labelType (LocalBlockLabel _) = CodeLabel labelType (SRTLabel _) = DataLabel +labelType (ForeignLabel _ _ _ IsFunction) = CodeLabel +labelType (ForeignLabel _ _ _ IsData) = DataLabel +labelType (AsmTempLabel _) = panic "labelType(AsmTempLabel)" +labelType (AsmTempDerivedLabel _ _) = panic "labelType(AsmTempDerivedLabel)" +labelType (StringLitLabel _) = DataLabel +labelType (CC_Label _) = DataLabel +labelType (CCS_Label _) = DataLabel +labelType (DynamicLinkerLabel _ _) = DataLabel -- Is this right? +labelType PicBaseLabel = DataLabel +labelType (DeadStripPreventer _) = DataLabel +labelType (HpcTicksLabel _) = DataLabel labelType (LargeSRTLabel _) = DataLabel labelType (LargeBitmapLabel _) = DataLabel -labelType (ForeignLabel _ _ _ IsFunction) = CodeLabel -labelType (IdLabel _ _ info) = idInfoLabelType info -labelType _ = DataLabel idInfoLabelType :: IdLabelInfo -> CLabelType idInfoLabelType info = |