X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=libgfortran%2Fintrinsics%2Fc99_functions.c;h=f7dc9777dd83c1d210d6cf2dd042f38d3d6a8a17;hb=333efcddecc598fd4b3522664244cea029958a00;hp=8198e0093eea03aa347fdb1a999a843234746f3c;hpb=a2d7a3ff6603a97188b69e3d64058f2093c43f71;p=pf3gnuchains%2Fgcc-fork.git diff --git a/libgfortran/intrinsics/c99_functions.c b/libgfortran/intrinsics/c99_functions.c index 8198e0093ee..f7dc9777dd8 100644 --- a/libgfortran/intrinsics/c99_functions.c +++ b/libgfortran/intrinsics/c99_functions.c @@ -4,17 +4,26 @@ This file is part of the GNU Fortran 95 runtime library (libgfortran). Libgfortran is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public +modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. +version 2 of the License, or (at your option) any later version. + +In addition to the permissions in the GNU General Public License, the +Free Software Foundation gives you unlimited permission to link the +compiled version of this file into combinations with other programs, +and to distribute those combinations without any restriction coming +from the use of this file. (The General Public License restrictions +do apply in other respects; for example, they cover modification of +the file, and distribution when not linked into a combine +executable.) Libgfortran is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. +GNU General Public License for more details. -You should have received a copy of the GNU Lesser General Public -License along with libgfortran; see the file COPYING.LIB. If not, +You should have received a copy of the GNU General Public +License along with libgfortran; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ @@ -97,6 +106,14 @@ expf(float x) } #endif +#ifndef HAVE_FABSF +float +fabsf(float x) +{ + return (float) fabs(x); +} +#endif + #ifndef HAVE_FLOORF float floorf(float x) @@ -201,6 +218,8 @@ nextafterf(float x, float y) return x + y; if (x == y) return x; + if (!isfinite (x)) + return x > 0 ? __FLT_MAX__ : - __FLT_MAX__; /* absx = fabsf (x); */ absx = (x < 0.0) ? -x : x; @@ -254,7 +273,7 @@ powf(float x, float y) } #endif -/* Note that if HAVE_FPCLASSIFY is not defined, then NaN is not handled */ +/* Note that if fpclassify is not defined, then NaN is not handled */ /* Algorithm by Steven G. Kargl. */ @@ -266,7 +285,7 @@ double round(double x) { double t; -#ifdef HAVE_FPCLASSIFY +#if defined(fpclassify) int i; i = fpclassify(x); if (i == FP_INFINITE || i == FP_NAN) @@ -298,7 +317,7 @@ float roundf(float x) { float t; -#ifdef HAVE_FPCLASSIFY +#if defined(fpclassify) int i; i = fpclassify(x); @@ -322,4 +341,3 @@ roundf(float x) } } #endif -