From bcdfaf105c8a053b0bd5ad8a380acffd8b3b5ee9 Mon Sep 17 00:00:00 2001 From: simonmar Date: Tue, 3 May 2005 10:38:19 +0000 Subject: [PATCH] [project @ 2005-05-03 10:38:19 by simonmar] Add a couple more lint tests --- ghc/compiler/cmm/CmmLint.hs | 7 +++++++ 1 file changed, 7 insertions(+) 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) -- 1.7.10.4