This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Regression for gdb.stabs/gdb11479.exp [Re: [patch 1/2] Use custom hash function with bcache]
Blech. "never mind". We do need the memset.
The hash still includes sizeof (ginfo.value), which is reasonable (I
thought it didn't for some reason).
gcc turns it in to a move instruction anyway so no worries there.
Alright, the attached patch memsets value and initializes obj_section as
you suggested. Is this ok to commit ?
Fix custom hash regression.
2010-09-03 Sami Wagiaalla <swagiaal@redhat.com>
* psymtab.c (add_psymbol_to_bcache): Initialize
obj_section.
memset psymbol.ginfo.value to 0.
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index a5d2f98..2f1bfc6 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -1378,6 +1378,11 @@ add_psymbol_to_bcache (char *name, int namelength, int copy_name,
{
struct partial_symbol psymbol;
+ /* We must ensure that the entire 'value' field has been zeroed
+ before assigning to it, because an assignment may not write the
+ entire field. */
+ memset (&psymbol.ginfo.value, 0, sizeof (psymbol.ginfo.value));
+
/* val and coreaddr are mutually exclusive, one of them *will* be zero */
if (val != 0)
{
@@ -1388,6 +1393,7 @@ add_psymbol_to_bcache (char *name, int namelength, int copy_name,
SYMBOL_VALUE_ADDRESS (&psymbol) = coreaddr;
}
SYMBOL_SECTION (&psymbol) = 0;
+ SYMBOL_OBJ_SECTION (&psymbol) = NULL;
SYMBOL_SET_LANGUAGE (&psymbol, language);
PSYMBOL_DOMAIN (&psymbol) = domain;
PSYMBOL_CLASS (&psymbol) = class;