[committed][gdb/testsuite] Fix gdb.fortran/info-types.exp regexp

Tom de Vries
2019-08-29T12:47:26Z

[-- Attachment #1: Type: text/plain, Size: 1084 bytes --]

[ was: Re: [PATCH 5/7] gdb/fortran: Don't include module symbols when
searching for types ]

On 28-08-19 14:37, Andrew Burgess wrote:
> * Andrew Burgess <andrew.burgess@embecosm.com> [2019-07-27 17:22:33 +0100]:
>
>> Currently the 'info types' command will return symbols that correspond
>> to Fortran modules. This because the symbols are created with domain
>> MODULE_DOMAIN, but address_class LOC_TYPEDEF, which is the same
>> address_class as type symbols.
>>
>> This commit explicitly prevents MODULE_DOMAIN symbols from appearing
>> when we search for symbols in the TYPES_DOMAIN, this prevents the
>> module symbols from appearing in the output of 'info types'.
>>
>> gdb/ChangeLog:
>>
>> * symtab.c (search_symbols): Don't include MODULE_DOMAIN symbols
>> when searching for types.
>>
>> gdb/testsuite/ChangeLog:
>>
>> * gdb.fortran/info-types.exp: Add module.
>> * gdb.fortran/info-types.f90: Update expected results.
>
> I've now pushed this patch as it only depended on the previous patch
> in this series.

I've committed this fix for the test-case.

Thanks,
- Tom

[-- Attachment #2: 0001-gdb-testsuite-Fix-gdb.fortran-info-types.exp-regexp.patch --]
[-- Type: text/x-patch, Size: 2087 bytes --]

[gdb/testsuite] Fix gdb.fortran/info-types.exp regexp

The gdb.fortran/info-types.exp test-case passes with gcc 7 (though not on
openSUSE, due to the extra debug info) and fails with gcc 4.8 and gcc 8.

Fix the gdb_test regexp to fix all those cases.

gdb/testsuite/ChangeLog:

2019-08-29 Tom de Vries <tdevries@suse.de>

* gdb.fortran/info-types.exp: Fix gdb_test regexp to allow more
diverse debug info.
* lib/fortran.exp (fortran_int8): New proc, based on fortran_int4.

---
gdb/testsuite/gdb.fortran/info-types.exp | 11 +++++++----
gdb/testsuite/lib/fortran.exp | 12 ++++++++++++
2 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/gdb/testsuite/gdb.fortran/info-types.exp b/gdb/testsuite/gdb.fortran/info-types.exp
index 81e67395e8..30646287ee 100644
--- a/gdb/testsuite/gdb.fortran/info-types.exp
+++ b/gdb/testsuite/gdb.fortran/info-types.exp
@@ -31,6 +31,7 @@ if { ![runto MAIN__] } {
}

set integer4 [fortran_int4]
+set integer8 [fortran_int8]
set logical4 [fortran_logical4]
set character1 [fortran_character1]

@@ -41,7 +42,9 @@ gdb_test "info types" \
"File .*:" \
"\[\t \]+${character1}" \
"\[\t \]+${integer4}" \
- "\[\t \]+${logical4}" \
- "20:\[\t \]+Type __vtype_mod1_M1t1;" \
- "17:\[\t \]+Type m1t1;" \
- "22:\[\t \]+Type s1;" ]
+ "(\[\t \]+${integer8}" \
+ ")?\[\t \]+${logical4}" \
+ "(20:\[\t \]+Type __vtype_mod1_M1t1;" \
+ ")?$decimal:\[\t \]+Type m1t1;" \
+ "22:\[\t \]+Type s1;(" \
+ ".*)?"]
diff --git a/gdb/testsuite/lib/fortran.exp b/gdb/testsuite/lib/fortran.exp
index 81811dbc3c..d523608807 100644
--- a/gdb/testsuite/lib/fortran.exp
+++ b/gdb/testsuite/lib/fortran.exp
@@ -41,6 +41,18 @@ proc fortran_int4 {} {
}
}

+proc fortran_int8 {} {
+ if {[test_compiler_info {gcc-4-[012]-*}]} {
+ return "int8"
+ } elseif {[test_compiler_info {gcc-*}]} {
+ return "integer\\(kind=8\\)"
+ } elseif {[test_compiler_info {icc-*}]} {
+ return "INTEGER\\(8\\)"
+ } else {
+ return "unknown"
+ }
+}
+
proc fortran_real4 {} {
if {[test_compiler_info {gcc-4-[012]-*}]} {
return "real4"