* mdebugread.c (parse_symbol): Save the symbol private data

using SYMBOL_VALUE_BYTES instead of SYMBOL_VALUE.
        (psymtab_to_symtab_1): Likewise.
        (parse_procedure): Declare variable "e" only in the scope
        where it is used. Extract the symbol private data using
        SYMBOL_VALUE_BYTES.
This commit is contained in:
Joel Brobecker 2009-01-13 11:52:43 +00:00
parent 74bcbdf3ce
commit 9918cab95e
2 changed files with 14 additions and 5 deletions

View File

@ -1,3 +1,12 @@
2009-01-13 Joel Brobecker <brobecker@adacore.com>
* mdebugread.c (parse_symbol): Save the symbol private data
using SYMBOL_VALUE_BYTES instead of SYMBOL_VALUE.
(psymtab_to_symtab_1): Likewise.
(parse_procedure): Declare variable "e" only in the scope
where it is used. Extract the symbol private data using
SYMBOL_VALUE_BYTES.
2009-01-13 Jim Blandy <jimb@codesourcery.com>
Abstract out common code for copying value locations.

View File

@ -1161,7 +1161,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
obstack_alloc (&current_objfile->objfile_obstack,
sizeof (struct mdebug_extra_func_info)));
memset (e, 0, sizeof (struct mdebug_extra_func_info));
SYMBOL_VALUE (s) = (long) e;
SYMBOL_VALUE_BYTES (s) = (gdb_byte *) e;
e->numargs = top_stack->numargs;
e->pdr.framereg = -1;
add_symbol (s, top_stack->cur_st, top_stack->cur_block);
@ -1817,7 +1817,6 @@ parse_procedure (PDR *pr, struct symtab *search_symtab,
struct gdbarch *gdbarch = get_objfile_arch (pst->objfile);
struct symbol *s, *i;
struct block *b;
struct mdebug_extra_func_info *e;
char *sh_name;
/* Simple rule to find files linked "-x" */
@ -1917,9 +1916,10 @@ parse_procedure (PDR *pr, struct symtab *search_symtab,
if (i)
{
e = (struct mdebug_extra_func_info *) SYMBOL_VALUE (i);
struct mdebug_extra_func_info *e;
e = (struct mdebug_extra_func_info *) SYMBOL_VALUE_BYTES (i);
e->pdr = *pr;
e->pdr.isym = (long) s;
/* GDB expects the absolute function start address for the
procedure descriptor in e->pdr.adr.
@ -3938,7 +3938,7 @@ psymtab_to_symtab_1 (struct partial_symtab *pst, char *filename)
SYMBOL_DOMAIN (s) = LABEL_DOMAIN;
SYMBOL_CLASS (s) = LOC_CONST;
SYMBOL_TYPE (s) = mdebug_type_void;
SYMBOL_VALUE (s) = (long) e;
SYMBOL_VALUE_BYTES (s) = (gdb_byte *) e;
e->pdr.framereg = -1;
add_symbol_to_list (s, &local_symbols);
}