diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 1996-05-17 17:09:54 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 1996-05-17 17:09:54 +0000 |
commit | e291fca1a3574797210af52d3ff2d8fbb1419356 (patch) | |
tree | 44034b4b0740028e8cac3b0c061a5bea34784f4f | |
parent | ce122a86188dc56eaf70488215b52b3dbc22bbce (diff) | |
download | gcc-e291fca1a3574797210af52d3ff2d8fbb1419356.zip gcc-e291fca1a3574797210af52d3ff2d8fbb1419356.tar.gz gcc-e291fca1a3574797210af52d3ff2d8fbb1419356.tar.bz2 |
Correct sign handling when dividing zero or infinity by something
From-SVN: r12009
-rw-r--r-- | gcc/config/fp-bit.c | 6 |
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)) { |