aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>1996-05-17 17:09:54 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>1996-05-17 17:09:54 +0000
commite291fca1a3574797210af52d3ff2d8fbb1419356 (patch)
tree44034b4b0740028e8cac3b0c061a5bea34784f4f /gcc
parentce122a86188dc56eaf70488215b52b3dbc22bbce (diff)
downloadgcc-e291fca1a3574797210af52d3ff2d8fbb1419356.zip
gcc-e291fca1a3574797210af52d3ff2d8fbb1419356.tar.gz
gcc-e291fca1a3574797210af52d3ff2d8fbb1419356.tar.bz2
Correct sign handling when dividing zero or infinity by something
From-SVN: r12009
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/fp-bit.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/config/fp-bit.c b/gcc/config/fp-bit.c
index eb160e8..7381ae8 100644
--- a/gcc/config/fp-bit.c
+++ b/gcc/config/fp-bit.c
@@ -2,7 +2,7 @@
the floating point routines in libgcc1.c for targets without hardware
floating point. */
-/* Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -944,13 +944,15 @@ _fpdiv_parts (fp_number_type * a,
{
return b;
}
+
+ a->sign = a->sign ^ b->sign;
+
if (isinf (a) || iszero (a))
{
if (a->class == b->class)
return nan ();
return a;
}
- a->sign = a->sign ^ b->sign;
if (isinf (b))
{