diff options
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/gdb.ada/import.exp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.ada/import.exp b/gdb/testsuite/gdb.ada/import.exp index 90cffa4..7355248 100644 --- a/gdb/testsuite/gdb.ada/import.exp +++ b/gdb/testsuite/gdb.ada/import.exp @@ -17,6 +17,12 @@ load_lib "ada.exp" require allow_ada_tests +# GCC with commit ff9baa5f1c5 ("DWARF: make it possible to emit debug info for +# declarations only") is required. The commit makes sure that file-scope +# function and variable declarations are emitted in dwarf. This allows the +# description of imported entries, making them available to the debugger. +require {expr [gcc_major_version] >= 8} + standard_ada_testfile prog set cfile "inc" @@ -48,8 +54,36 @@ gdb_test "print pkg.imported_var_ada" " = 42" gdb_test "print pkg.exported_var_ada" " = 99" gdb_test "print exported_var_ada" " = 99" +# This passes with gcc 10 but fails with gcc 9. With gcc 9, we have: +# <1><1659>: Abbrev Number: 4 (DW_TAG_subprogram) +# <165a> DW_AT_external : 1 +# <165a> DW_AT_name : pkg__imported_func_ada +# <165e> DW_AT_decl_file : 2 +# <165f> DW_AT_decl_line : 22 +# <1660> DW_AT_decl_column : 13 +# <1661> DW_AT_linkage_name: imported_func +# <1665> DW_AT_type : <0x1669> +# and with gcc 10 instead: +# <1><1670>: Abbrev Number: 4 (DW_TAG_subprogram) +# <1671> DW_AT_external : 1 +# <1671> DW_AT_name : pkg__imported_func_ada +# <1675> DW_AT_decl_file : 2 +# <1676> DW_AT_decl_line : 22 +# <1677> DW_AT_decl_column : 13 +# <1678> DW_AT_linkage_name: imported_func +# <167c> DW_AT_type : <0x1680> +# <1680> DW_AT_declaration : 1 +# The fact that things start to work when adding the DW_AT_declaration is +# consistent with what is described in commit ff9baa5f1c5, so xfail this +# (without pinpointing it to a specific gcc PR or commit). +if { [gcc_major_version] < 10 } { + setup_xfail *-*-* +} gdb_breakpoint "pkg.imported_func_ada" message gdb_breakpoint "imported_func" message +if { [gcc_major_version] < 10 } { + setup_xfail *-*-* +} gdb_breakpoint "imported_func_ada" message gdb_breakpoint "local_imported_func" message |