X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2FMain.hs;h=bdf9e63e43e6d2e1e6bb3e095286858e4b70fafe;hb=1d141bd52e6eea321e90cd11059f726094dd50be;hp=766577eac8d83af59a94da87d48c2ca83db14b42;hpb=4cdb06b3b6e836777eef10f4707a07d1ddcb280e;p=ghc-hetmet.git diff --git a/ghc/Main.hs b/ghc/Main.hs index 766577e..bdf9e63 100644 --- a/ghc/Main.hs +++ b/ghc/Main.hs @@ -10,13 +10,12 @@ module Main (main) where -#include "HsVersions.h" - -- The official GHC API import qualified GHC import GHC ( DynFlags(..), HscTarget(..), GhcMode(..), GhcLink(..), - LoadHowMuch(..), dopt, DynFlag(..) ) + LoadHowMuch(..), dopt, DynFlag(..), + defaultCallbacks ) import CmdLineParser -- Implementations of the various modes (--show-iface, mkdependHS. etc.) @@ -153,7 +152,11 @@ main = let flagWarnings = staticFlagWarnings ++ modeFlagWarnings ++ dynamicFlagWarnings - liftIO $ handleFlagWarnings dflags2 flagWarnings + + handleSourceError (\e -> do + GHC.printExceptionAndWarnings e + liftIO $ exitWith (ExitFailure 1)) $ + handleFlagWarnings dflags2 flagWarnings -- make sure we clean up after ourselves GHC.defaultCleanupHandler dflags2 $ do @@ -511,7 +514,7 @@ doMake srcs = do doShowIface :: DynFlags -> FilePath -> IO () doShowIface dflags file = do - hsc_env <- newHscEnv dflags + hsc_env <- newHscEnv defaultCallbacks dflags showIface hsc_env file -- ---------------------------------------------------------------------------