[committed,gdb/testsuite] Fix gdb.fortran/ptype-on-functions.exp with gcc-4.8

Message ID 20200730103612.GA28126@delia
State New
Headers show
  • [committed,gdb/testsuite] Fix gdb.fortran/ptype-on-functions.exp with gcc-4.8
Related show

Commit Message

Tom de Vries July 30, 2020, 10:36 a.m.

When running test-case gdb.fortran/ptype-on-functions.exp with gfortran 4.8.5,
we run into:
(gdb) ptype some_module::get_number^M
type = integer(kind=4) (Type __class_some_module_Number)^M
(gdb) FAIL: gdb.fortran/ptype-on-functions.exp: ptype some_module::get_number
ptype some_module::set_number^M
type = void (Type __class_some_module_Number, integer(kind=4))^M
(gdb) FAIL: gdb.fortran/ptype-on-functions.exp: ptype some_module::set_number

The test-case pattern expects a "_t" suffix on "__class_some_module_Number".

The difference is caused by a gcc commit 073afca6884 'class.c
(gfc_build_class_symbol): Append "_t" to target class names to make the
generated type names unique' which has been present since gcc 4.9.0.

Fix the pattern by optionally matching the _t suffix.

Tested on x86_64-linux, with gfortran 4.8.5 and 7.5.0.

Committed to trunk.

- Tom

[gdb/testsuite] Fix gdb.fortran/ptype-on-functions.exp with gcc-4.8


2020-07-30  Tom de Vries  <tdevries@suse.de>

	* gdb.fortran/ptype-on-functions.exp: Make "_t" suffix on
	"__class_some_module_Number_t" optional.

 gdb/testsuite/gdb.fortran/ptype-on-functions.exp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)


diff --git a/gdb/testsuite/gdb.fortran/ptype-on-functions.exp b/gdb/testsuite/gdb.fortran/ptype-on-functions.exp
index 9d447530c2..93e984af24 100644
--- a/gdb/testsuite/gdb.fortran/ptype-on-functions.exp
+++ b/gdb/testsuite/gdb.fortran/ptype-on-functions.exp
@@ -30,10 +30,10 @@  if ![fortran_runto_main] then {
 gdb_test "ptype some_module::get_number" \
-    "type = integer\\(kind=4\\) \\(Type __class_some_module_Number_t\\)"
+    "type = integer\\(kind=4\\) \\(Type __class_some_module_Number(_t)?\\)"
 gdb_test "ptype some_module::set_number" \
-    "type = void \\(Type __class_some_module_Number_t, integer\\(kind=4\\)\\)"
+    "type = void \\(Type __class_some_module_Number(_t)?, integer\\(kind=4\\)\\)"
 gdb_test "ptype is_bigger" \
     "type = logical\\(kind=4\\) \\(integer\\(kind=4\\), integer\\(kind=4\\)\\)"