Catch too-large allocations and emit an error message (#4505)
[ghc-hetmet.git] / compiler / codeGen / StgCmm.hs
index ae4fa1b..52809da 100644 (file)
@@ -41,7 +41,6 @@ import IdInfo
 import Type
 import DataCon
 import Name
-import OccName
 import TyCon
 import Module
 import ErrUtils
@@ -113,7 +112,7 @@ cgTopBinding dflags (StgRec pairs, _srts)
   = do { let (bndrs, rhss) = unzip pairs
        ; bndrs' <- mapFCs (maybeExternaliseId dflags) bndrs
        ; let pairs' = zip bndrs' rhss
-       ; fixC (\ new_binds -> do 
+       ; fixC_(\ new_binds -> do 
                { addBindsC new_binds
                ; mapFCs ( \ (b,e) -> cgTopRhs b e ) pairs' })
        ; return () }
@@ -330,11 +329,12 @@ cgDataCon data_con
            (dyn_cl_info, arg_things) = layOutDynConstr data_con arg_reps
 
            emit_info cl_info ticky_code
-               = emitClosureAndInfoTable cl_info [] $ mk_code ticky_code
+               = emitClosureAndInfoTable cl_info NativeDirectCall []
+                                        $ mk_code ticky_code
 
            mk_code ticky_code
              =         -- NB: We don't set CC when entering data (WDP 94/06)
-               do { ticky_code
+               do { _ <- ticky_code
                   ; ldvEnter (CmmReg nodeReg)
                   ; tickyReturnOldCon (length arg_things)
                   ; emitReturn [cmmOffsetB (CmmReg nodeReg)