diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/doublest.c | 2 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/ldbl_e308.c | 26 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/ldbl_e308.exp | 31 |
5 files changed, 67 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4d3c3ec..20ab7a9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2012-10-24 Joel Brobecker <brobecker@adacore.com> + * doublest.c (convert_doublest_to_floatformat): Fix comparison + against maximum exponent value. + +2012-10-24 Joel Brobecker <brobecker@adacore.com> + * ada-lang.h (ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS): Add entry for "unwind-seh.c". diff --git a/gdb/doublest.c b/gdb/doublest.c index f683002..0308dac 100644 --- a/gdb/doublest.c +++ b/gdb/doublest.c @@ -483,7 +483,7 @@ convert_doublest_to_floatformat (CONST struct floatformat *fmt, goto finalize_byteorder; } - if (exponent + fmt->exp_bias >= (1 << fmt->exp_len) - 1) + if (exponent + fmt->exp_bias >= (1 << fmt->exp_len)) { /* The value is too large to fit into the destination. Treat as infinity. */ diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index a7a1180..633c0ab 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2012-10-24 Joel Brobecker <brobecker@adacore.com> + * gdb.base/ldbl_e308.c, gdb.base/ldbl_e308.exp: New files. + +2012-10-24 Joel Brobecker <brobecker@adacore.com> + * gdb.ada/unc_arr_ptr_in_var_rec: New testcase. 2012-10-24 Mark Kettenis <kettenis@gnu.org> diff --git a/gdb/testsuite/gdb.base/ldbl_e308.c b/gdb/testsuite/gdb.base/ldbl_e308.c new file mode 100644 index 0000000..8bbe01b --- /dev/null +++ b/gdb/testsuite/gdb.base/ldbl_e308.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2012 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +long double ldbl_308 = 2.0; + +int +main (void) +{ + ldbl_308 = ldbl_308 / 2; + + return 0; +} diff --git a/gdb/testsuite/gdb.base/ldbl_e308.exp b/gdb/testsuite/gdb.base/ldbl_e308.exp new file mode 100644 index 0000000..89c54b5 --- /dev/null +++ b/gdb/testsuite/gdb.base/ldbl_e308.exp @@ -0,0 +1,31 @@ +# Copyright (C) 2012 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +set testfile ldbl_e308 +set srcfile ${testfile}.c +if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } { + return -1 +} + +if ![runto_main] { + untested ${testfile}.exp + return -1 +} + +gdb_test_no_output "set variable ldbl_308 = 1.6e+308l" + +gdb_test "print ldbl_308" \ + "= (1\..*e\\+308|inf)" + |