Commit 6331d1c1 by Jason Merrill

dwarf2out.c (mem_loc_descriptor): Only look through a constant pool reference if...

        * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
        reference if the target constant is also a SYMBOL_REF.

From-SVN: r43805
parent d15a05b3
2001-07-02 Jason Merrill <jason_merrill@redhat.com>
* dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
reference if the target constant is also a SYMBOL_REF.
2001-07-05 Eric Christopher <echristo@redhat.com> 2001-07-05 Eric Christopher <echristo@redhat.com>
* config/mips/mips.h (MASK_MIPS3900): Remove. * config/mips/mips.h (MASK_MIPS3900): Remove.
......
...@@ -7427,18 +7427,16 @@ mem_loc_descriptor (rtl, mode) ...@@ -7427,18 +7427,16 @@ mem_loc_descriptor (rtl, mode)
pool. */ pool. */
case CONST: case CONST:
case SYMBOL_REF: case SYMBOL_REF:
/* Alternatively, the symbol in the constant pool can be referenced /* Alternatively, the symbol in the constant pool might be referenced
by a different symbol. */ by a different symbol. */
if (GET_CODE (rtl) == SYMBOL_REF if (GET_CODE (rtl) == SYMBOL_REF
&& CONSTANT_POOL_ADDRESS_P (rtl)) && CONSTANT_POOL_ADDRESS_P (rtl))
{ {
rtx tmp = get_pool_constant (rtl); rtx tmp = get_pool_constant (rtl);
/* Doesn't work for floating point constants. */ if (GET_CODE (tmp) == SYMBOL_REF)
if (! (GET_CODE (tmp) == CONST_DOUBLE && GET_MODE (tmp) != VOIDmode))
rtl = tmp; rtl = tmp;
} }
mem_loc_result = new_loc_descr (DW_OP_addr, 0, 0); mem_loc_result = new_loc_descr (DW_OP_addr, 0, 0);
mem_loc_result->dw_loc_oprnd1.val_class = dw_val_class_addr; mem_loc_result->dw_loc_oprnd1.val_class = dw_val_class_addr;
mem_loc_result->dw_loc_oprnd1.v.val_addr = save_rtx (rtl); mem_loc_result->dw_loc_oprnd1.v.val_addr = save_rtx (rtl);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment