Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15-SP2
gdb
gdb-symtab-fix-line-number-of-static-const-clas...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gdb-symtab-fix-line-number-of-static-const-class-mem.patch of Package gdb
From e5972def532f3ed248dfbd2f220f28dc367f4ca1 Mon Sep 17 00:00:00 2001 From: Tom de Vries <tdevries@suse.de> Date: Fri, 24 Mar 2023 15:45:56 +0100 Subject: [PATCH 07/12] [gdb/symtab] Fix line number of static const class member Since commit 6d263fe46e0 ("Avoid bad breakpoints with --gc-sections"), there was a silent regression on openSUSE Leap 15.4 for test-case gdb.cp/m-static.exp, from: ... (gdb) info variable everywhere^M All variables matching regular expression "everywhere":^M ^M File /home/vries/tmp.local-remote-host-native/m-static.h:^M 8: const int gnu_obj_4::everywhere;^M (gdb) ... to: ... (gdb) info variable everywhere^M All variables matching regular expression "everywhere":^M ^M File /data/vries/gdb/src/gdb/testsuite/gdb.cp/m-static.h:^M 8: const int gnu_obj_4::everywhere;^M ^M File /data/vries/gdb/src/gdb/testsuite/gdb.cp/m-static1.cc:^M 8: const int gnu_obj_4::everywhere;^M (gdb) ... Another regression was found due to that commit, and it was fixed in commit 99d679e7b30 ("[gdb/symtab] Fix "file index out of range" complaint") by limiting the scope of the fix in the original commit. Fix this regression by yet further limiting the scope of that fix, making sure that this bit in dwarf_decode_lines is executed again for m-static1.cc: ... /* Make sure a symtab is created for every file, even files which contain only variables (i.e. no code with associated line numbers). */ ... Tested on x86_64-linux. PR symtab/30265 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30265 --- gdb/dwarf2/read.c | 3 +-- gdb/testsuite/gdb.cp/m-static.exp | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index f39eba7a008..04bc0e1cbbd 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -9633,8 +9633,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 a67b4cd3736..049e88299da 100644 --- a/gdb/testsuite/gdb.cp/m-static.exp +++ b/gdb/testsuite/gdb.cp/m-static.exp @@ -183,8 +183,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 -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor