diff options
author | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-20 21:53:31 +0000 |
---|---|---|
committer | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-20 21:53:31 +0000 |
commit | b3a1e478e29e49c79758cc6c6a1a8afe0d2dee94 (patch) | |
tree | 82bf6bb0301d879a5d56200bb826c83f83c9f256 /gcc/real.c | |
parent | d0a77c67f950cddca01a760d559ec9d54cf04870 (diff) | |
download | gcc-b3a1e478e29e49c79758cc6c6a1a8afe0d2dee94.tar.gz |
* real.c (real_floor): Don't leave the result uninitialized when
mode is VOIDMode, but return the unrounded intermediate value.
(real_ceil): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93988 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/real.c')
-rw-r--r-- | gcc/real.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/real.c b/gcc/real.c index ebd402a32fa..5871d1e037c 100644 --- a/gcc/real.c +++ b/gcc/real.c @@ -1,6 +1,6 @@ /* real.c - software floating point emulation. Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2002, 2003, 2004 Free Software Foundation, Inc. + 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Contributed by Stephen L. Moshier (moshier@world.std.com). Re-written by Richard Henderson <rth@redhat.com> @@ -4625,6 +4625,8 @@ real_floor (REAL_VALUE_TYPE *r, enum machine_mode mode, do_add (&t, &t, &dconstm1, 0); if (mode != VOIDmode) real_convert (r, mode, &t); + else + *r = t; } /* Round X to the smallest integer not less then argument, i.e. round @@ -4641,6 +4643,8 @@ real_ceil (REAL_VALUE_TYPE *r, enum machine_mode mode, do_add (&t, &t, &dconst1, 0); if (mode != VOIDmode) real_convert (r, mode, &t); + else + *r = t; } /* Round X to the nearest integer, but round halfway cases away from |