aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2025-10-18 14:33:06 -0600
committerTom Tromey <tom@tromey.com>2025-10-20 17:27:58 -0600
commita83612ba7526757568305b2f452167919ce3579d (patch)
treee8d37acf13f86ec1031a474f9beeb0fa29d220c2 /gdb
parenta2ad69674214f6f3fb2f4b9f2a39db6fa81415c2 (diff)
downloadbinutils-a83612ba7526757568305b2f452167919ce3579d.zip
binutils-a83612ba7526757568305b2f452167919ce3579d.tar.gz
binutils-a83612ba7526757568305b2f452167919ce3579d.tar.bz2
Only set call site if not empty
In an earlier discussion, I noted that most compunit_symtabs do not have a call-site hash table, so inlining the object into compunit_symtab did not make sense. It turns out that this is not entirely true -- while most compunit_symtabs do not have any data in this object, the object itself is always created. This in turn is a regression introduced by commit de2b4ab5 ("Convert dwarf2_cu::call_site_htab to new hash table"). This patch fixes the issue by arranging to only store a call-site hash table when it is non-empty. Approved-By: Simon Marchi <simon.marchi@efficios.com>
Diffstat (limited to 'gdb')
-rw-r--r--gdb/symtab.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 13cd331..4e96503 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -428,8 +428,9 @@ void
compunit_symtab::set_call_site_htab (call_site_htab_t &&call_site_htab)
{
gdb_assert (m_call_site_htab == nullptr);
- m_call_site_htab
- = std::make_unique<call_site_htab_t> (std::move (call_site_htab));
+ if (!call_site_htab.empty ())
+ m_call_site_htab
+ = std::make_unique<call_site_htab_t> (std::move (call_site_htab));
}
/* See symtab.h. */