summaryrefslogtreecommitdiff
path: root/compiler/GHC/Cmm/CLabel.hs
diff options
context:
space:
mode:
authorSylvain Henry <sylvain@haskus.fr>2020-06-22 18:08:54 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-10-09 08:40:33 -0400
commit386c2d7ff80843051ad15eab5de3766430ee98a5 (patch)
tree38e2943504dbf02f8551a870e1a8a965b8ae5632 /compiler/GHC/Cmm/CLabel.hs
parente91ddddd714b22df2569681fb033fbb151ec7e6b (diff)
downloadhaskell-386c2d7ff80843051ad15eab5de3766430ee98a5.tar.gz
Use UnitId in the backend instead of Unit
In Cmm we can only have real units identified with an UnitId. Other units (on-the-fly instantiated units and holes) are only used in type-checking backpack sessions that don't produce Cmm.
Diffstat (limited to 'compiler/GHC/Cmm/CLabel.hs')
-rw-r--r--compiler/GHC/Cmm/CLabel.hs12
1 files changed, 6 insertions, 6 deletions
diff --git a/compiler/GHC/Cmm/CLabel.hs b/compiler/GHC/Cmm/CLabel.hs
index fe133316d9..9a65369246 100644
--- a/compiler/GHC/Cmm/CLabel.hs
+++ b/compiler/GHC/Cmm/CLabel.hs
@@ -387,7 +387,7 @@ instance Ord CLabel where
data ForeignLabelSource
-- | Label is in a named package
- = ForeignLabelInPackage Unit
+ = ForeignLabelInPackage UnitId
-- | Label is in some external, system package that doesn't also
-- contain compiled Haskell code, and is not associated with any .hi files.
@@ -1087,15 +1087,15 @@ labelDynamic config this_mod lbl =
case lbl of
-- is the RTS in a DLL or not?
RtsLabel _ ->
- externalDynamicRefs && (this_pkg /= rtsUnit)
+ externalDynamicRefs && (this_unit /= rtsUnitId)
IdLabel n _ _ ->
externalDynamicRefs && isDynLinkName platform this_mod n
-- When compiling in the "dyn" way, each package is to be linked into
-- its own shared library.
- CmmLabel pkg _ _ _
- | os == OSMinGW32 -> externalDynamicRefs && (toUnitId this_pkg /= pkg)
+ CmmLabel lbl_unit _ _ _
+ | os == OSMinGW32 -> externalDynamicRefs && (this_unit /= lbl_unit)
| otherwise -> externalDynamicRefs
LocalBlockLabel _ -> False
@@ -1114,7 +1114,7 @@ labelDynamic config this_mod lbl =
-- When compiling in the "dyn" way, each package is to be
-- linked into its own DLL.
ForeignLabelInPackage pkgId ->
- externalDynamicRefs && (this_pkg /= pkgId)
+ externalDynamicRefs && (this_unit /= pkgId)
else -- On Mac OS X and on ELF platforms, false positives are OK,
-- so we claim that all foreign imports come from dynamic
@@ -1136,7 +1136,7 @@ labelDynamic config this_mod lbl =
externalDynamicRefs = ncgExternalDynamicRefs config
platform = ncgPlatform config
os = platformOS platform
- this_pkg = moduleUnit this_mod
+ this_unit = toUnitId (moduleUnit this_mod)
-----------------------------------------------------------------------------