re PR fortran/31832 (FAIL: gfortran.dg/integer_exponentiation_2.f90 at -O1 and above)

PR fortran/31832
	* acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): New autoconf check for
	broken powf.
	* configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Use it.
	* intrinsics/c99_functions.c: Use internal powf implementation if
	HAVE_BROKEN_POWF is defined.
	* configure: Rebuilt.
	* config.h.in: Rebuilt.

From-SVN: r142952
This commit is contained in:
John David Anglin 2008-12-29 20:10:00 +00:00 committed by John David Anglin
parent 049dba029b
commit c0c3c409a7
6 changed files with 55 additions and 0 deletions

View File

@ -1,3 +1,14 @@
2008-12-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR fortran/31832
* acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): New autoconf check for
broken powf.
* configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Use it.
* intrinsics/c99_functions.c: Use internal powf implementation if
HAVE_BROKEN_POWF is defined.
* configure: Rebuilt.
* config.h.in: Rebuilt.
2008-12-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/37472

View File

@ -376,3 +376,15 @@ __mingw_snprintf (NULL, 0, "%d\n", 1);
AC_DEFINE(HAVE_MINGW_SNPRINTF, 1, [Define if you have __mingw_snprintf.])
fi
])
dnl Check whether we have a broken powf implementation
AC_DEFUN([LIBGFOR_CHECK_FOR_BROKEN_POWF], [
AC_CACHE_CHECK([whether powf is broken], libgfor_cv_have_broken_powf, [
case "${target}" in
hppa*64*-*-hpux*) libgfor_cv_have_broken_powf=yes ;;
*) libgfor_cv_have_broken_powf=no;;
esac])
if test x"$libgfor_cv_have_broken_powf" = xyes; then
AC_DEFINE(HAVE_BROKEN_POWF, 1, [Define if powf is broken.])
fi
])

View File

@ -96,6 +96,9 @@
/* Define if isnan is broken. */
#undef HAVE_BROKEN_ISNAN
/* Define if powf is broken. */
#undef HAVE_BROKEN_POWF
/* libm includes cabs */
#undef HAVE_CABS

24
libgfortran/configure vendored
View File

@ -33243,6 +33243,30 @@ _ACEOF
fi
# Check for a broken powf implementation
echo "$as_me:$LINENO: checking whether powf is broken" >&5
echo $ECHO_N "checking whether powf is broken... $ECHO_C" >&6
if test "${libgfor_cv_have_broken_powf+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
case "${target}" in
hppa*64*-*-hpux*) libgfor_cv_have_broken_powf=yes ;;
*) libgfor_cv_have_broken_powf=no;;
esac
fi
echo "$as_me:$LINENO: result: $libgfor_cv_have_broken_powf" >&5
echo "${ECHO_T}$libgfor_cv_have_broken_powf" >&6
if test x"$libgfor_cv_have_broken_powf" = xyes; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_BROKEN_POWF 1
_ACEOF
fi
# Check for GNU libc feenableexcept
echo "$as_me:$LINENO: checking for feenableexcept in -lm" >&5
echo $ECHO_N "checking for feenableexcept in -lm... $ECHO_C" >&6

View File

@ -405,6 +405,9 @@ LIBGFOR_CHECK_WORKING_STAT
# Check whether __mingw_snprintf() is present
LIBGFOR_CHECK_MINGW_SNPRINTF
# Check for a broken powf implementation
LIBGFOR_CHECK_FOR_BROKEN_POWF
# Check for GNU libc feenableexcept
AC_CHECK_LIB([m],[feenableexcept],[have_feenableexcept=yes AC_DEFINE([HAVE_FEENABLEEXCEPT],[1],[libm includes feenableexcept])])

View File

@ -491,8 +491,10 @@ nextafterf(float x, float y)
#endif
#if !defined(HAVE_POWF) || defined(HAVE_BROKEN_POWF)
#ifndef HAVE_POWF
#define HAVE_POWF 1
#endif
float
powf(float x, float y)
{