From: Jakub Jelinek Date: Tue, 2 Sep 2008 18:46:29 +0000 (+0200) Subject: re PR testsuite/36332 (FAIL: gcc.dg/torture/type-generic-1.c execution test on power... X-Git-Tag: releases/gcc-4.4.0~2696 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c83c7e7e47f2a1618ea5ab1e6fc78df66b22f285;p=thirdparty%2Fgcc.git re PR testsuite/36332 (FAIL: gcc.dg/torture/type-generic-1.c execution test on powerpc-*) PR target/36332 * real.c (real_maxval): Clear a lower bit to make real_maxval match get_max_float for IBM long double format. * gcc.c-torture/execute/ieee/pr36332.c: New test. From-SVN: r139906 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0179e92f0d52..670d5f3ba5b2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-09-02 Jakub Jelinek + + PR target/36332 + * real.c (real_maxval): Clear a lower bit to make real_maxval + match get_max_float for IBM long double format. + 2008-09-02 Andreas Schwab * configure.ac: Use m4_quote to quote the expansion of m4_do. diff --git a/gcc/real.c b/gcc/real.c index 886f8b4ae2c0..dc6d7483e998 100644 --- a/gcc/real.c +++ b/gcc/real.c @@ -2417,7 +2417,7 @@ real_maxval (REAL_VALUE_TYPE *r, int sign, enum machine_mode mode) required to be the value of the long double rounded to the nearest double. Rounding means we need a slightly smaller value for LDBL_MAX. */ - clear_significand_bit (r, SIGNIFICAND_BITS - fmt->pnan); + clear_significand_bit (r, SIGNIFICAND_BITS - fmt->pnan - 1); } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b30e34518d23..f9fdc55a00a2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2008-09-02 Jakub Jelinek + PR target/36332 + * gcc.c-torture/execute/ieee/pr36332.c: New test. + PR c/37171 * g++.dg/ext/attrib34.C: New test. diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/pr36332.c b/gcc/testsuite/gcc.c-torture/execute/ieee/pr36332.c new file mode 100644 index 000000000000..b22fd5d5f740 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/ieee/pr36332.c @@ -0,0 +1,15 @@ +/* PR target/36332 */ + +int __attribute__((noinline, used)) +foo (long double ld) +{ + return ld == __builtin_infl (); +} + +int +main () +{ + if (foo (__LDBL_MAX__)) + __builtin_abort (); + return 0; +}