diff options
-rw-r--r-- | compiler/GHC/Driver/Backpack.hs | 5 | ||||
-rw-r--r-- | testsuite/tests/backpack/should_compile/T20396.bkp | 7 | ||||
-rw-r--r-- | testsuite/tests/backpack/should_compile/T20396.stderr | 22 | ||||
-rw-r--r-- | testsuite/tests/backpack/should_compile/all.T | 1 |
4 files changed, 33 insertions, 2 deletions
diff --git a/compiler/GHC/Driver/Backpack.hs b/compiler/GHC/Driver/Backpack.hs index a4dbe7052b..5d0a6a828c 100644 --- a/compiler/GHC/Driver/Backpack.hs +++ b/compiler/GHC/Driver/Backpack.hs @@ -91,8 +91,6 @@ import qualified Data.Set as Set -- | Entry point to compile a Backpack file. doBackpack :: [FilePath] -> Ghc () doBackpack [src_filename] = do - logger <- getLogger - -- Apply options from file to dflags dflags0 <- getDynFlags let dflags1 = dflags0 @@ -100,6 +98,9 @@ doBackpack [src_filename] = do src_opts <- liftIO $ getOptionsFromFile parser_opts1 src_filename (dflags, unhandled_flags, warns) <- liftIO $ parseDynamicFilePragma dflags1 src_opts modifySession (hscSetFlags dflags) + logger <- getLogger -- Get the logger after having set the session flags, + -- so that logger options are correctly set. + -- Not doing so caused #20396. -- Cribbed from: preprocessFile / GHC.Driver.Pipeline liftIO $ checkProcessArgsResult unhandled_flags liftIO $ handleFlagWarnings logger (initDiagOpts dflags) warns diff --git a/testsuite/tests/backpack/should_compile/T20396.bkp b/testsuite/tests/backpack/should_compile/T20396.bkp new file mode 100644 index 0000000000..eff8b66316 --- /dev/null +++ b/testsuite/tests/backpack/should_compile/T20396.bkp @@ -0,0 +1,7 @@ + +{-# OPTIONS_GHC -ddump-simpl -dsuppress-all -dsuppress-uniques #-} + +unit unit where + module A where + f :: Int -> Int + f x = x diff --git a/testsuite/tests/backpack/should_compile/T20396.stderr b/testsuite/tests/backpack/should_compile/T20396.stderr new file mode 100644 index 0000000000..702ab87ffe --- /dev/null +++ b/testsuite/tests/backpack/should_compile/T20396.stderr @@ -0,0 +1,22 @@ +[1 of 1] Processing unit + Instantiating unit + [1 of 1] Compiling A ( unit\A.hs, T20396.out\unit\A.o ) + +==================== Tidy Core ==================== +Result size of Tidy Core + = {terms: 17, types: 8, coercions: 0, joins: 0/0} + +f = \ x -> x + +$trModule1 = "unit"# + +$trModule2 = TrNameS $trModule1 + +$trModule3 = "A"# + +$trModule4 = TrNameS $trModule3 + +$trModule = Module $trModule2 $trModule4 + + + diff --git a/testsuite/tests/backpack/should_compile/all.T b/testsuite/tests/backpack/should_compile/all.T index ac8c2a7ed8..07c1ed27ec 100644 --- a/testsuite/tests/backpack/should_compile/all.T +++ b/testsuite/tests/backpack/should_compile/all.T @@ -58,3 +58,4 @@ test('T13149', expect_broken(13149), backpack_compile, ['']) test('T13214', normal, backpack_compile, ['']) test('T13250', normal, backpack_compile, ['']) test('T13323', normal, backpack_compile, ['']) +test('T20396', normal, backpack_compile, ['']) |