summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/GHC/Driver/Make.hs10
-rw-r--r--testsuite/tests/warnings/should_compile/T23212.hs3
-rw-r--r--testsuite/tests/warnings/should_compile/all.T4
3 files changed, 14 insertions, 3 deletions
diff --git a/compiler/GHC/Driver/Make.hs b/compiler/GHC/Driver/Make.hs
index 0d0df0dd1b..7f60d5a8a0 100644
--- a/compiler/GHC/Driver/Make.hs
+++ b/compiler/GHC/Driver/Make.hs
@@ -514,13 +514,17 @@ warnUnusedPackages :: UnitState -> DynFlags -> ModuleGraph -> DriverMessages
warnUnusedPackages us dflags mod_graph =
let diag_opts = initDiagOpts dflags
+ home_mod_sum = filter (\ms -> homeUnitId_ dflags == ms_unitid ms) (mgModSummaries mod_graph)
+
-- Only need non-source imports here because SOURCE imports are always HPT
loadedPackages = concat $
mapMaybe (\(fs, mn) -> lookupModulePackage us (unLoc mn) fs)
- $ concatMap ms_imps (
- filter (\ms -> homeUnitId_ dflags == ms_unitid ms) (mgModSummaries mod_graph))
+ $ concatMap ms_imps home_mod_sum
+
+ any_import_ghc_prim = any ms_ghc_prim_import home_mod_sum
- used_args = Set.fromList $ map unitId loadedPackages
+ used_args = Set.fromList (map unitId loadedPackages)
+ `Set.union` Set.fromList [ primUnitId | any_import_ghc_prim ]
resolve (u,mflag) = do
-- The units which we depend on via the command line explicitly
diff --git a/testsuite/tests/warnings/should_compile/T23212.hs b/testsuite/tests/warnings/should_compile/T23212.hs
new file mode 100644
index 0000000000..892a28d4a4
--- /dev/null
+++ b/testsuite/tests/warnings/should_compile/T23212.hs
@@ -0,0 +1,3 @@
+module T23212 where
+
+import GHC.Prim
diff --git a/testsuite/tests/warnings/should_compile/all.T b/testsuite/tests/warnings/should_compile/all.T
index 9fe8b99787..0c8c2f6a5d 100644
--- a/testsuite/tests/warnings/should_compile/all.T
+++ b/testsuite/tests/warnings/should_compile/all.T
@@ -39,6 +39,10 @@ test('UnusedPackages', [normalise_version('bytestring')
], multimod_compile,
['UnusedPackages.hs', '-package=bytestring -package=base -package=process -package=ghc -Wunused-packages'])
+test('T23212', [normalise_version('ghc-prim')
+ ], multimod_compile,
+ ['T23212', '-v0 -package=ghc-prim -Werror -Wunused-packages'])
+
test('T18402', normal, compile, [''])
test('T19564a', normal, compile, [''])