aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/f-valprint.c2
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.fortran/array-bounds-high.exp39
-rw-r--r--gdb/testsuite/gdb.fortran/array-bounds-high.f9023
5 files changed, 74 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5ac2596..f9ef0e1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2020-02-03 Alok Kumar Sharma <AlokKumar.Sharma@amd.com>
+
+ * f-valprint.c (f77_print_array_1): Changed datatype of index
+ variable to LONGEST from int to enable it to contain bound
+ values correctly.
+
2020-02-03 Maciej W. Rozycki <macro@wdc.com>
* riscv-linux-nat.c [!NFPREG] (NFPREG): New macro.
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
index 168957f..71247a7 100644
--- a/gdb/f-valprint.c
+++ b/gdb/f-valprint.c
@@ -115,7 +115,7 @@ f77_print_array_1 (int nss, int ndimensions, struct type *type,
struct type *range_type = TYPE_INDEX_TYPE (check_typedef (type));
CORE_ADDR addr = address + embedded_offset;
LONGEST lowerbound, upperbound;
- int i;
+ LONGEST i;
get_discrete_bounds (range_type, &lowerbound, &upperbound);
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 4999756..45eb887 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2020-02-03 Alok Kumar Sharma <AlokKumar.Sharma@amd.com>
+
+ * gdb.fortran/array-bounds-high.exp: New file.
+ * gdb.fortran/array-bounds-high.f90: New file.
+
2020-02-03 Lukas Durfina <ldurfina@tachyum.com> (tiny change)
* gdb.base/fileio.c: Remove #include of <sys/errno.h>.
diff --git a/gdb/testsuite/gdb.fortran/array-bounds-high.exp b/gdb/testsuite/gdb.fortran/array-bounds-high.exp
new file mode 100644
index 0000000..81e2f87
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/array-bounds-high.exp
@@ -0,0 +1,39 @@
+# Copyright 2020 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/>.
+
+# This file is part of the gdb testsuite. It contains test to ensure that
+# array bounds accept LONGEST.
+
+if { [skip_fortran_tests] } { return -1 }
+
+set testfile "array-bounds-high"
+standard_testfile .f90
+
+if {[prepare_for_testing $testfile.exp $testfile $srcfile {f90 debug}]} {
+ return -1
+}
+
+if {![runto MAIN__]} {
+ perror "Could not run to breakpoint `MAIN__'."
+ continue
+}
+
+gdb_test "until 21" {21.*print.*}
+
+# Lets check whether too high (with - sign) indexed array are printed correctly
+gdb_test "print arr1" {.*\(11, 11\).*}
+
+# Lets check whether too high (with + sign) indexed array are printed correctly
+gdb_test "print arr2" {.*\(22, 22\).*}
diff --git a/gdb/testsuite/gdb.fortran/array-bounds-high.f90 b/gdb/testsuite/gdb.fortran/array-bounds-high.f90
new file mode 100644
index 0000000..b72cd1bb
--- /dev/null
+++ b/gdb/testsuite/gdb.fortran/array-bounds-high.f90
@@ -0,0 +1,23 @@
+! Copyright 2020 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/>.
+
+program main
+ integer(4) :: arr1(-4294967297_8:-4294967296_8)
+ integer(4) :: arr2(4294967296_8:4294967297_8)
+ arr1 = 11
+ arr2 = 22
+ print *, 'arr1 = ', arr1
+ print *, 'arr2 = ', arr2
+end