X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fcmm%2FCmmParse.y;h=8679ff221ba6d88a3ca6952b4d6fb8f24ef4bc46;hp=20edd512745e4497090d6c494d63c4ae5ebc3eed;hb=6e2021202c3eec0c95a9d0b7c355559f2630d380;hpb=cc318c842a9d6bbc90a7ef3f24450b4cbac0e2c8 diff --git a/compiler/cmm/CmmParse.y b/compiler/cmm/CmmParse.y index 20edd51..8679ff2 100644 --- a/compiler/cmm/CmmParse.y +++ b/compiler/cmm/CmmParse.y @@ -46,8 +46,9 @@ import Panic import Constants import Outputable -import Control.Monad ( when ) +import Control.Monad import Data.Char ( ord ) +import System.Exit #include "HsVersions.h" } @@ -918,9 +919,12 @@ parseCmmFile dflags filename = do -- in there we don't want. case unP cmmParse init_state of PFailed span err -> do printError span err; return Nothing - POk _ code -> do + POk pst code -> do cmm <- initC dflags no_module (getCmm (unEC code initEnv [] >> return ())) - dumpIfSet_dyn dflags Opt_D_dump_cmm "Cmm" (pprCmms [cmm]) + let ms = getMessages pst + printErrorsAndWarnings dflags ms + when (errorsFound dflags ms) $ exitWith (ExitFailure 1) + dumpIfSet_dyn dflags Opt_D_dump_cmm "Cmm" (pprCmms [cmm]) return (Just cmm) where no_module = panic "parseCmmFile: no module"