aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2019-07-24 14:00:07 +0100
committerAndrew Burgess <andrew.burgess@embecosm.com>2019-10-16 22:22:09 +0100
commit0b54364d92d9cddb490f9291ec8eef11086b0917 (patch)
treebe0912830da06cd1482d0c0b1cd0b709dcc58278
parent7ff5fae704ca96a9ce17cba5004e7b8402bb70bb (diff)
downloadgdb-0b54364d92d9cddb490f9291ec8eef11086b0917.zip
gdb-0b54364d92d9cddb490f9291ec8eef11086b0917.tar.gz
gdb-0b54364d92d9cddb490f9291ec8eef11086b0917.tar.bz2
gdb/fortran: Add test for module variables in 'info variables' output
Recent work from Tom Tromey to better handle variables with associated copy relocations has fixed a Fortran issue where module variables wouldn't show up in the output of 'info variables'. This commit adds a test for this functionality to ensure it doesn't get broken in the future. gdb/testsuite/ChangeLog: * gdb.fortran/module.exp: Extend with 'info variables' test. Change-Id: I7306b1d0a9a72947fd48ad7a03f49df774d6573b
-rw-r--r--gdb/testsuite/ChangeLog4
-rw-r--r--gdb/testsuite/gdb.fortran/module.exp24
2 files changed, 28 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index d2fa9ed..395a3cc 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,9 @@
2019-10-16 Andrew Burgess <andrew.burgess@embecosm.com>
+ * gdb.fortran/module.exp: Extend with 'info variables' test.
+
+2019-10-16 Andrew Burgess <andrew.burgess@embecosm.com>
+
* boards/cc-with-tweaks.exp: Setup F90_FOR_TARGET and
F77_FOR_TARGET.
diff --git a/gdb/testsuite/gdb.fortran/module.exp b/gdb/testsuite/gdb.fortran/module.exp
index 4d71e7e..276f7dc 100644
--- a/gdb/testsuite/gdb.fortran/module.exp
+++ b/gdb/testsuite/gdb.fortran/module.exp
@@ -13,6 +13,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+load_lib "fortran.exp"
+
standard_testfile .f90
if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}] } {
@@ -32,6 +34,28 @@ if ![runto MAIN__] then {
continue
}
+set int_type [fortran_int4]
+
+# Test 'info variables' can find module variables.
+gdb_test "info variables -n" \
+ [multi_line \
+ "All defined variables:" \
+ "" \
+ "File .*$srcfile:" \
+ "18:\[ \t\]+${int_type} mod1::var_const;" \
+ "17:\[ \t\]+${int_type} mod1::var_i;" \
+ "23:\[ \t\]+${int_type} mod2::var_i;" \
+ "28:\[ \t\]+${int_type} mod3::mod1;" \
+ "27:\[ \t\]+${int_type} mod3::mod2;" \
+ "29:\[ \t\]+${int_type} mod3::var_i;" \
+ "33:\[ \t\]+${int_type} modmany::var_a;" \
+ "33:\[ \t\]+${int_type} modmany::var_b;" \
+ "33:\[ \t\]+${int_type} modmany::var_c;" \
+ "33:\[ \t\]+${int_type} modmany::var_i;" \
+ "37:\[ \t\]+${int_type} moduse::var_x;" \
+ "37:\[ \t\]+${int_type} moduse::var_y;" ]
+
+
# Do not use simple single-letter names as GDB would pick up for expectedly
# nonexisting symbols some static variables from system libraries debuginfos.