diff options
author | simonmar <unknown> | 2005-05-03 10:38:19 +0000 |
---|---|---|
committer | simonmar <unknown> | 2005-05-03 10:38:19 +0000 |
commit | bcdfaf105c8a053b0bd5ad8a380acffd8b3b5ee9 (patch) | |
tree | 6fd18eea0703b3ccc88f024d8d7dad70ced3a73b /ghc/compiler/cmm | |
parent | b5d7fd266145bc09088d78e7d5dafbd45195ab31 (diff) | |
download | haskell-bcdfaf105c8a053b0bd5ad8a380acffd8b3b5ee9.tar.gz |
[project @ 2005-05-03 10:38:19 by simonmar]
Add a couple more lint tests
Diffstat (limited to 'ghc/compiler/cmm')
-rw-r--r-- | ghc/compiler/cmm/CmmLint.hs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/ghc/compiler/cmm/CmmLint.hs b/ghc/compiler/cmm/CmmLint.hs index d82fe7c3ac..fbfb14c165 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) |