OSDN Git Service

PR c++/49102
[pf3gnuchains/gcc-fork.git] / gcc / dwarf2out.c
index c08f5aa..55453a3 100644 (file)
@@ -13880,7 +13880,11 @@ mem_loc_descriptor (rtx rtl, enum machine_mode mode,
        break;
       if (GET_MODE_CLASS (mode) == MODE_INT
          && GET_MODE_CLASS (GET_MODE (SUBREG_REG (rtl))) == MODE_INT
-         && GET_MODE_SIZE (mode) <= DWARF2_ADDR_SIZE
+         && (GET_MODE_SIZE (mode) <= DWARF2_ADDR_SIZE
+#ifdef POINTERS_EXTEND_UNSIGNED
+             || (mode == Pmode && mem_mode != VOIDmode)
+#endif
+            )
          && GET_MODE_SIZE (GET_MODE (SUBREG_REG (rtl))) <= DWARF2_ADDR_SIZE)
        {
          mem_loc_result = mem_loc_descriptor (SUBREG_REG (rtl),
@@ -17715,7 +17719,9 @@ tree_add_const_value_attribute_for_decl (dw_die_ref var_die, tree decl)
 
   if (!decl
       || (TREE_CODE (decl) != VAR_DECL
-         && TREE_CODE (decl) != CONST_DECL))
+         && TREE_CODE (decl) != CONST_DECL)
+      || (TREE_CODE (decl) == VAR_DECL
+         && !TREE_STATIC (decl)))
     return false;
 
     if (TREE_READONLY (decl)