From: simonmar Date: Tue, 3 May 2005 10:38:19 +0000 (+0000) Subject: [project @ 2005-05-03 10:38:19 by simonmar] X-Git-Tag: Initial_conversion_from_CVS_complete~619 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=bcdfaf105c8a053b0bd5ad8a380acffd8b3b5ee9;p=ghc-hetmet.git [project @ 2005-05-03 10:38:19 by simonmar] Add a couple more lint tests --- diff --git a/ghc/compiler/cmm/CmmLint.hs b/ghc/compiler/cmm/CmmLint.hs index d82fe7c..fbfb14c 100644 --- a/ghc/compiler/cmm/CmmLint.hs +++ b/ghc/compiler/cmm/CmmLint.hs @@ -68,6 +68,9 @@ lintCmmExpr (CmmRegOff reg offset) = lintCmmExpr (CmmMachOp (MO_Add rep) [CmmReg reg, CmmLit (CmmInt (fromIntegral offset) rep)]) where rep = cmmRegRep reg +lintCmmExpr lit@(CmmLit (CmmInt _ rep)) + | isFloatingRep rep + = cmmLintErr (text "integer literal with floating MachRep: " <> ppr lit) lintCmmExpr expr = return (cmmExprRep expr) @@ -77,6 +80,10 @@ cmmCheckMachOp op args@[CmmReg reg, CmmLit (CmmInt i _)] = cmmLintDubiousWordOffset (CmmMachOp op args) cmmCheckMachOp op [lit@(CmmLit (CmmInt i _)), reg@(CmmReg _)] = cmmCheckMachOp op [reg, lit] +cmmCheckMachOp op@(MO_U_Conv from to) args + | isFloatingRep from || isFloatingRep to + = cmmLintErr (text "unsigned conversion from/to floating rep: " + <> ppr (CmmMachOp op args)) cmmCheckMachOp op args = return (resultRepOfMachOp op)