diff options
| author | Tom Tromey <tom@tromey.com> | 2025-10-18 14:33:06 -0600 |
|---|---|---|
| committer | Tom Tromey <tom@tromey.com> | 2025-10-20 17:27:58 -0600 |
| commit | a83612ba7526757568305b2f452167919ce3579d (patch) | |
| tree | e8d37acf13f86ec1031a474f9beeb0fa29d220c2 /gdb | |
| parent | a2ad69674214f6f3fb2f4b9f2a39db6fa81415c2 (diff) | |
| download | binutils-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.c | 5 |
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. */ |
