If a SYMBOL_REF is in the constant pool, use the pool's SYMBOL_REF.
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 24 Apr 2001 08:06:04 +0000 (08:06 +0000)
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 24 Apr 2001 08:06:04 +0000 (08:06 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41518 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/dwarf2out.c

index a083a5b..7569d12 100644 (file)
@@ -1,5 +1,8 @@
 2001-04-24  Nick Clifton  <nickc@cambridge.redhat.com>
 
+       * dwarf2out.c (mem_loc_descriptor): If a SYMBOL_REF is in the
+       constant pool, use the pool's SYMBOL_REF instead.
+
        * config/v850/v850.h (STRICT_ALIGNMENT): Always set, even for the
        v850e.
 
index 9be55d8..b709d07 100644 (file)
@@ -7117,6 +7117,12 @@ mem_loc_descriptor (rtl, mode)
         pool.  */
     case CONST:
     case SYMBOL_REF:
+      /* Alternatively, the symbol in the constant pool can be referenced
+        by a different symbol.  */
+      if (GET_CODE (rtl) == SYMBOL_REF
+         && CONSTANT_POOL_ADDRESS_P (rtl))
+         rtl = get_pool_constant (rtl);
+
       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.v.val_addr = save_rtx (rtl);