From: Roger Sayle Date: Thu, 20 Jan 2005 21:53:31 +0000 (+0000) Subject: real.c (real_floor): Don't leave the result uninitialized when mode is VOIDMode... X-Git-Tag: releases/gcc-4.0.0~1406 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8ffeac67a786b8ccce5541f82c135de211412b67;p=thirdparty%2Fgcc.git real.c (real_floor): Don't leave the result uninitialized when mode is VOIDMode... * real.c (real_floor): Don't leave the result uninitialized when mode is VOIDMode, but return the unrounded intermediate value. (real_ceil): Likewise. From-SVN: r93988 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f6cf77fd9cae..1044ec61d761 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-01-20 Roger Sayle + + * real.c (real_floor): Don't leave the result uninitialized when + mode is VOIDMode, but return the unrounded intermediate value. + (real_ceil): Likewise. + 2005-01-20 Paul Brook * config/arm/arm.md (insv): Use gen_int_mode. diff --git a/gcc/real.c b/gcc/real.c index ebd402a32fac..5871d1e037c4 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 @@ -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