dbxout.c (dbxout_symbol_location): Do not output references to optimized-out constant pool symbols.
* dbxout.c (dbxout_symbol_location): Do not output references to optimized-out constant pool symbols. From-SVN: r79258
This commit is contained in:
parent
f69535d2b7
commit
452c159ed1
2 changed files with 25 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
|||
2004-03-10 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* dbxout.c (dbxout_symbol_location): Do not output references
|
||||
to optimized-out constant pool symbols.
|
||||
|
||||
2004-03-10 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
|
||||
|
|
24
gcc/dbxout.c
24
gcc/dbxout.c
|
@ -2503,11 +2503,27 @@ dbxout_symbol_location (tree decl, tree type, const char *suffix, rtx home)
|
|||
if (GET_CODE (current_sym_addr) == SYMBOL_REF
|
||||
&& CONSTANT_POOL_ADDRESS_P (current_sym_addr))
|
||||
{
|
||||
rtx tmp = get_pool_constant (current_sym_addr);
|
||||
bool marked;
|
||||
rtx tmp = get_pool_constant_mark (current_sym_addr, &marked);
|
||||
|
||||
if (GET_CODE (tmp) == SYMBOL_REF
|
||||
|| GET_CODE (tmp) == LABEL_REF)
|
||||
current_sym_addr = tmp;
|
||||
if (GET_CODE (tmp) == SYMBOL_REF)
|
||||
{
|
||||
current_sym_addr = tmp;
|
||||
if (CONSTANT_POOL_ADDRESS_P (current_sym_addr))
|
||||
get_pool_constant_mark (current_sym_addr, &marked);
|
||||
else
|
||||
marked = true;
|
||||
}
|
||||
else if (GET_CODE (tmp) == LABEL_REF)
|
||||
{
|
||||
current_sym_addr = tmp;
|
||||
marked = true;
|
||||
}
|
||||
|
||||
/* If all references to the constant pool were optimized
|
||||
out, we just ignore the symbol. */
|
||||
if (!marked)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Ultrix `as' seems to need this. */
|
||||
|
|
Loading…
Add table
Reference in a new issue