From: simonpj Date: Thu, 22 Jun 2000 14:40:22 +0000 (+0000) Subject: [project @ 2000-06-22 14:40:22 by simonpj] X-Git-Tag: Approximately_9120_patches~4158 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=41cd7a86fa1748718faac4e12f359b7fa61c088b;p=ghc-hetmet.git [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.) --- 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