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> 2008-12-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/37472 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.]) AC_DEFINE(HAVE_MINGW_SNPRINTF, 1, [Define if you have __mingw_snprintf.])
fi 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. */ /* Define if isnan is broken. */
#undef HAVE_BROKEN_ISNAN #undef HAVE_BROKEN_ISNAN
/* Define if powf is broken. */
#undef HAVE_BROKEN_POWF
/* libm includes cabs */ /* libm includes cabs */
#undef HAVE_CABS #undef HAVE_CABS

24
libgfortran/configure vendored
View File

@ -33243,6 +33243,30 @@ _ACEOF
fi 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 # Check for GNU libc feenableexcept
echo "$as_me:$LINENO: checking for feenableexcept in -lm" >&5 echo "$as_me:$LINENO: checking for feenableexcept in -lm" >&5
echo $ECHO_N "checking for feenableexcept in -lm... $ECHO_C" >&6 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 # Check whether __mingw_snprintf() is present
LIBGFOR_CHECK_MINGW_SNPRINTF LIBGFOR_CHECK_MINGW_SNPRINTF
# Check for a broken powf implementation
LIBGFOR_CHECK_FOR_BROKEN_POWF
# Check for GNU libc feenableexcept # Check for GNU libc feenableexcept
AC_CHECK_LIB([m],[feenableexcept],[have_feenableexcept=yes AC_DEFINE([HAVE_FEENABLEEXCEPT],[1],[libm includes 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 #endif
#if !defined(HAVE_POWF) || defined(HAVE_BROKEN_POWF)
#ifndef HAVE_POWF #ifndef HAVE_POWF
#define HAVE_POWF 1 #define HAVE_POWF 1
#endif
float float
powf(float x, float y) powf(float x, float y)
{ {