diff options
author | Krzysztof Gogolewski <krzysztof.gogolewski@tweag.io> | 2020-06-21 17:22:15 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-06-23 22:52:09 -0400 |
commit | a1f34d37b47826e86343e368a5c00f1a4b1f2bce (patch) | |
tree | 068aaf64213d8606195d726fdb95751fd3c9459e | |
parent | 7ad4085c22a8d5030545cc9e0fedd0784836ecbf (diff) | |
download | haskell-a1f34d37b47826e86343e368a5c00f1a4b1f2bce.tar.gz |
Add missing entry to freeNamesItem (#18369)
-rw-r--r-- | compiler/GHC/Iface/Syntax.hs | 5 | ||||
-rw-r--r-- | testsuite/tests/driver/T18369.hs | 10 | ||||
-rw-r--r-- | testsuite/tests/driver/all.T | 1 |
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']) |