[gdb/testsuite] Add target board debug-types
authorTom de Vries <tdevries@suse.de>
Sat, 25 Apr 2020 15:19:26 +0000 (17:19 +0200)
committerTom de Vries <tdevries@suse.de>
Sat, 25 Apr 2020 15:19:26 +0000 (17:19 +0200)
This patch adds a target board debug-types that switches on
-fdebug-types-section by default.

This -fdebug-types-section option is a gcc option that enables the generation
of a .debug_types section, which is only effective for DWARF version 4.

There are two other boards that enable this: dwarf4-gdb-index and fisson, but
while those test some meaningful combination of options, this board is
intended to test only -fdebug-types-section.

Current results with gcc 7.5.0 are:
...
 === gdb Summary ===

 # of expected passes            75832
 # of unexpected failures        2841
 # of expected failures          130
 # of known failures             75
 # of unresolved testcases       22
 # of untested testcases         37
 # of unsupported tests          83
...

Related known issues:
- PR gcc/90232 - "gcc drops top-level dies with -fdebug-types-section"
- PR gdb/25875 - "segv in ada_discrete_type_low_bound"
- PR gdb/14148 - "-fdebug-types-section regresses static scope of types"

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2020-04-25  Tom de Vries  <tdevries@suse.de>

* boards/debug-types.exp: New file.

gdb/testsuite/ChangeLog
gdb/testsuite/boards/debug-types.exp [new file with mode: 0644]

index 6a5c2f53b0ff6ace4703f8bfbb99ea6a760b9b92..366ecc29edcf808d480de0854428d8872e22a147 100644 (file)
@@ -1,3 +1,7 @@
+2020-04-25  Tom de Vries  <tdevries@suse.de>
+
+       * boards/debug-types.exp: New file.
+
 2020-04-25  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * gdb.btrace/multi-inferior.exp: Avoid paths in test names.
diff --git a/gdb/testsuite/boards/debug-types.exp b/gdb/testsuite/boards/debug-types.exp
new file mode 100644 (file)
index 0000000..346da8a
--- /dev/null
@@ -0,0 +1,41 @@
+# 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 a dejagnu "board file" and is used to run the testsuite
+# with -fdebug-types-section.
+#
+# Example usage:
+# bash$ make check RUNTESTFLAGS='--target_board=debug-types'
+
+load_board_description "local-board"
+
+# This is based on baseboards/unix.exp.
+# At the moment we only support systems that unix.exp supports.
+load_generic_config "unix"
+process_multilib_options ""
+set found_gcc [find_gcc]
+set found_gxx [find_g++]
+set found_gnatmake [find_gnatmake]
+set found_f90 [find_gfortran]
+set found_f77 [find_g77]
+set_board_info compiler "$found_gcc"
+
+# The -fdebug-types-section switch only has an effect with DWARF version 4.
+# For now, we don't enforce DWARF-4.  This lets test-cases that enforce a
+# different version alone.  And since DWARF-4 is the default for gcc-4.8
+# - gcc-10 anyway, we don't lose much test coverage that way.
+#set_board_info debug_flags "-gdwarf-4 -fdebug-types-section"
+
+set_board_info debug_flags "-g -fdebug-types-section"