diff --git a/contrib/libtests/pngvalid.c b/contrib/libtests/pngvalid.c index c469259c1..fc671724c 100644 --- a/contrib/libtests/pngvalid.c +++ b/contrib/libtests/pngvalid.c @@ -30,6 +30,20 @@ # include #endif +#ifdef HAVE_FEENABLEEXCEPT /* from config.h, if included */ +# include +#endif + +#ifndef FE_DIVBYZERO +# define FE_DIVBYZERO 0 +#endif +#ifndef FE_INVALID +# define FE_INVALID 0 +#endif +#ifndef FE_OVERFLOW +# define FE_OVERFLOW 0 +#endif + /* Define the following to use this test against your installed libpng, rather * than the one being built here: */ @@ -39,13 +53,6 @@ # include "../../png.h" #endif -#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED -# ifdef HAVE_FEENABLEEXCEPT /* from config.h, if included */ -# include -# endif -#endif - - #ifdef PNG_ZLIB_HEADER # include PNG_ZLIB_HEADER #else @@ -689,7 +696,7 @@ static png_uint_32 random_32(void) { - for(;;) + for (;;) { png_byte mark[4]; png_uint_32 result; @@ -9965,11 +9972,9 @@ static void signal_handler(int signum) pos = safecat(msg, sizeof msg, pos, "abort"); break; -#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED case SIGFPE: pos = safecat(msg, sizeof msg, pos, "floating point exception"); break; -#endif case SIGILL: pos = safecat(msg, sizeof msg, pos, "illegal instruction"); @@ -10035,21 +10040,18 @@ int main(int argc, char **argv) /* Add appropriate signal handlers, just the ANSI specified ones: */ signal(SIGABRT, signal_handler); + signal(SIGFPE, signal_handler); signal(SIGILL, signal_handler); signal(SIGINT, signal_handler); signal(SIGSEGV, signal_handler); signal(SIGTERM, signal_handler); -#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED - signal(SIGFPE, signal_handler); - -# ifdef HAVE_FEENABLEEXCEPT +#ifdef HAVE_FEENABLEEXCEPT /* Only required to enable FP exceptions on platforms where they start off * disabled; this is not necessary but if it is not done pngvalid will likely * end up ignoring FP conditions that other platforms fault. */ feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW); -# endif #endif modifier_init(&pm);