From 41cd7a86fa1748718faac4e12f359b7fa61c088b Mon Sep 17 00:00:00 2001 From: simonpj Date: Thu, 22 Jun 2000 14:40:22 +0000 Subject: [PATCH] [project @ 2000-06-22 14:40:22 by simonpj] *** MERGE WITH 4.07 *** * The divide by zero check in the constant-folding rules was testing the numerator not denominator! (For Float and Double.) --- ghc/compiler/prelude/PrelRules.lhs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ghc/compiler/prelude/PrelRules.lhs b/ghc/compiler/prelude/PrelRules.lhs index 5f2c0df..bdf3627 100644 --- a/ghc/compiler/prelude/PrelRules.lhs +++ b/ghc/compiler/prelude/PrelRules.lhs @@ -226,7 +226,7 @@ floatOp2 op name (MachFloat f1) (MachFloat f2) floatOp2 op name l1 l2 = Nothing floatOp2Z op name (MachFloat f1) (MachFloat f2) - | f1 /= 0 = Just (name, mkFloatVal (f1 `op` f2)) + | f2 /= 0 = Just (name, mkFloatVal (f1 `op` f2)) floatOp2Z op name l1 l2 = Nothing -------------------------- @@ -235,7 +235,7 @@ doubleOp2 op name (MachDouble f1) (MachDouble f2) doubleOp2 op name l1 l2 = Nothing doubleOp2Z op name (MachDouble f1) (MachDouble f2) - | f1 /= 0 = Just (name, mkDoubleVal (f1 `op` f2)) + | f2 /= 0 = Just (name, mkDoubleVal (f1 `op` f2)) doubleOp2Z op name l1 l2 = Nothing -- 1.7.10.4