summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof Gogolewski <krzysztof.gogolewski@tweag.io>2020-06-21 17:22:15 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-06-23 22:52:09 -0400
commita1f34d37b47826e86343e368a5c00f1a4b1f2bce (patch)
tree068aaf64213d8606195d726fdb95751fd3c9459e
parent7ad4085c22a8d5030545cc9e0fedd0784836ecbf (diff)
downloadhaskell-a1f34d37b47826e86343e368a5c00f1a4b1f2bce.tar.gz
Add missing entry to freeNamesItem (#18369)
-rw-r--r--compiler/GHC/Iface/Syntax.hs5
-rw-r--r--testsuite/tests/driver/T18369.hs10
-rw-r--r--testsuite/tests/driver/all.T1
3 files changed, 14 insertions, 2 deletions
diff --git a/compiler/GHC/Iface/Syntax.hs b/compiler/GHC/Iface/Syntax.hs
index 2b0fcd2b76..0e88bce487 100644
--- a/compiler/GHC/Iface/Syntax.hs
+++ b/compiler/GHC/Iface/Syntax.hs
@@ -1712,8 +1712,9 @@ freeNamesIfIdInfo :: IfaceIdInfo -> NameSet
freeNamesIfIdInfo = fnList freeNamesItem
freeNamesItem :: IfaceInfoItem -> NameSet
-freeNamesItem (HsUnfold _ u) = freeNamesIfUnfold u
-freeNamesItem _ = emptyNameSet
+freeNamesItem (HsUnfold _ u) = freeNamesIfUnfold u
+freeNamesItem (HsLFInfo (IfLFCon n)) = unitNameSet n
+freeNamesItem _ = emptyNameSet
freeNamesIfUnfold :: IfaceUnfolding -> NameSet
freeNamesIfUnfold (IfCoreUnfold _ e) = freeNamesIfExpr e
diff --git a/testsuite/tests/driver/T18369.hs b/testsuite/tests/driver/T18369.hs
new file mode 100644
index 0000000000..7756b7bee8
--- /dev/null
+++ b/testsuite/tests/driver/T18369.hs
@@ -0,0 +1,10 @@
+module T18369 where
+
+import Unsafe.Coerce
+import GHC.Exts (Any)
+
+{-# NOINLINE emptyRecord #-}
+emptyRecord :: Any
+emptyRecord = unsafeCoerce EmptyElement
+
+data TombStone = EmptyElement
diff --git a/testsuite/tests/driver/all.T b/testsuite/tests/driver/all.T
index ab89eb5656..b78b13b3bb 100644
--- a/testsuite/tests/driver/all.T
+++ b/testsuite/tests/driver/all.T
@@ -281,3 +281,4 @@ test('T16737',
test('T17143', exit_code(1), run_command, ['{compiler} T17143.hs -S -fno-code'])
test('T17786', unless(opsys('mingw32'), skip), makefile_test, [])
+test('T18369', normal, compile, ['-O'])