diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index c9208a097bf..c910be875a3 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -7610,8 +7610,7 @@ handle_DW_AT_stmt_list (struct die_info *die, struct dwarf2_cu *cu, then there won't be any interesting code in the CU, but a check later on (in lnp_state_machine::check_line_address) will fail to properly exclude an entry that was removed via --gc-sections. */ - if (have_code) - dwarf_decode_lines (cu->line_header, cu, lowpc, decode_mapping); + dwarf_decode_lines (cu->line_header, cu, lowpc, decode_mapping && have_code); } /* Process DW_TAG_compile_unit or DW_TAG_partial_unit. */ diff --git a/gdb/testsuite/gdb.cp/m-static.exp b/gdb/testsuite/gdb.cp/m-static.exp index 37d3289a751..a78baa9e895 100644 --- a/gdb/testsuite/gdb.cp/m-static.exp +++ b/gdb/testsuite/gdb.cp/m-static.exp @@ -185,8 +185,10 @@ gdb_test "print test4.somewhere" "\\$\[0-9\].* = 3.14\[0-9\]*" "static const flo if { $non_dwarf } { setup_xfail *-*-* } gdb_test "info variable everywhere" \ [multi_line \ + {All variables matching regular expression "everywhere":} \ + "" \ "File (.*/)?m-static\[.\]h:" \ - "$decimal:\tconst int gnu_obj_4::everywhere;.*"] + "$decimal:\tconst int gnu_obj_4::everywhere;"] # Perhaps at some point test4 should also include a test for a static # const int that was initialized in the header file. But I'm not sure