If a symbol ref is in the constant pool, use the pool's version of the symbol instead.
From-SVN: r48625
This commit is contained in:
parent
57d1019b98
commit
4b69f385ca
@ -1,3 +1,8 @@
|
|||||||
|
2002-01-08 Nick Clifton <nickc@cambridge.redhat.com>
|
||||||
|
|
||||||
|
* dbxout.c (dbxout_symbol_location): If a symbol ref is in the
|
||||||
|
constant pool, use the pool's version of the symbol instead.
|
||||||
|
|
||||||
2002-01-07 Richard Henderson <rth@redhat.com>
|
2002-01-07 Richard Henderson <rth@redhat.com>
|
||||||
|
|
||||||
* regrename.c (find_oldest_value_reg): Ignore the value chain if
|
* regrename.c (find_oldest_value_reg): Ignore the value chain if
|
||||||
|
14
gcc/dbxout.c
14
gcc/dbxout.c
@ -2164,6 +2164,20 @@ dbxout_symbol_location (decl, type, suffix, home)
|
|||||||
current_sym_code = DBX_STATIC_CONST_VAR_CODE;
|
current_sym_code = DBX_STATIC_CONST_VAR_CODE;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
/* Some ports can transform a symbol ref into a label ref,
|
||||||
|
because the symbol ref is too far away and has to be
|
||||||
|
dumped into a constant pool. Alternatively, the symbol
|
||||||
|
in the constant pool might be referenced by a different
|
||||||
|
symbol. */
|
||||||
|
if (GET_CODE (current_sym_addr) == SYMBOL_REF
|
||||||
|
&& CONSTANT_POOL_ADDRESS_P (current_sym_addr))
|
||||||
|
{
|
||||||
|
rtx tmp = get_pool_constant (current_sym_addr);
|
||||||
|
|
||||||
|
if (GET_CODE (tmp) == SYMBOL_REF)
|
||||||
|
current_sym_addr = tmp;
|
||||||
|
}
|
||||||
|
|
||||||
/* Ultrix `as' seems to need this. */
|
/* Ultrix `as' seems to need this. */
|
||||||
#ifdef DBX_STATIC_STAB_DATA_SECTION
|
#ifdef DBX_STATIC_STAB_DATA_SECTION
|
||||||
data_section ();
|
data_section ();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user