diff options
author | Jakub Jelinek <jakub@redhat.com> | 2008-09-02 20:46:29 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-09-02 20:46:29 +0200 |
commit | c83c7e7e47f2a1618ea5ab1e6fc78df66b22f285 (patch) | |
tree | e1b8841f5e2430ccf674dd0b115c45411c50bb8a | |
parent | 75c9cbe3557ee9c4971140719dfce0a8dd4d1d52 (diff) | |
download | gcc-c83c7e7e47f2a1618ea5ab1e6fc78df66b22f285.zip gcc-c83c7e7e47f2a1618ea5ab1e6fc78df66b22f285.tar.gz gcc-c83c7e7e47f2a1618ea5ab1e6fc78df66b22f285.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/real.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/ieee/pr36332.c | 15 |
4 files changed, 25 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0179e92..670d5f3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-09-02 Jakub Jelinek <jakub@redhat.com> + + 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 <schwab@suse.de> * configure.ac: Use m4_quote to quote the expansion of m4_do. @@ -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 b30e345..f9fdc55 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2008-09-02 Jakub Jelinek <jakub@redhat.com> + 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 0000000..b22fd5d --- /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; +} |