* dwarfread.c (new_symbol): Use SYMBOL_VALUE_ADDRESS, instead of

SYMBOL_VALUE, to set the value of LOC_STATIC symbols.
This commit is contained in:
Fred Fish 1997-06-17 14:01:37 +00:00
parent f781fe93a6
commit 015e113cfe
2 changed files with 17 additions and 3 deletions

View File

@ -1,3 +1,8 @@
Tue Jun 17 06:52:47 1997 Fred Fish <fnf@cygnus.com>
* dwarfread.c (new_symbol): Use SYMBOL_VALUE_ADDRESS, instead of
SYMBOL_VALUE, to set the value of LOC_STATIC symbols.
Mon Jun 16 18:38:28 1997 Mark Alexander <marka@cygnus.com>
* infrun.c (wait_for_inferior): Mark registers as invalid when

View File

@ -2972,7 +2972,7 @@ new_symbol (dip, objfile)
case TAG_global_variable:
if (dip -> at_location != NULL)
{
SYMBOL_VALUE (sym) = locval (dip -> at_location);
SYMBOL_VALUE_ADDRESS (sym) = locval (dip -> at_location);
add_symbol_to_list (sym, &global_symbols);
SYMBOL_CLASS (sym) = LOC_STATIC;
SYMBOL_VALUE (sym) += baseaddr;
@ -2981,8 +2981,6 @@ new_symbol (dip, objfile)
case TAG_local_variable:
if (dip -> at_location != NULL)
{
SYMBOL_VALUE (sym) = locval (dip -> at_location);
add_symbol_to_list (sym, list_in_scope);
if (optimized_out)
{
SYMBOL_CLASS (sym) = LOC_OPTIMIZED_OUT;
@ -3001,6 +2999,17 @@ new_symbol (dip, objfile)
SYMBOL_CLASS (sym) = LOC_STATIC;
SYMBOL_VALUE (sym) += baseaddr;
}
if (SYMBOL_CLASS (sym) == LOC_STATIC)
{
/* LOC_STATIC address class MUST use SYMBOL_VALUE_ADDRESS,
which may store to a bigger location than SYMBOL_VALUE. */
SYMBOL_VALUE_ADDRESS (sym) = locval (dip -> at_location);
}
else
{
SYMBOL_VALUE (sym) = locval (dip -> at_location);
}
add_symbol_to_list (sym, list_in_scope);
}
break;
case TAG_formal_parameter: