]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* dwarf2out.c (loc_descriptor_from_tree, case CONSTRUCTOR): New case.
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Thu, 31 Jul 2003 21:31:24 +0000 (21:31 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Thu, 31 Jul 2003 21:31:24 +0000 (17:31 -0400)
From-SVN: r70013

gcc/ChangeLog
gcc/dwarf2out.c

index 1f48c7c67cadb8d81d89456a7bdac7d07126a5b8..87ce37ab1032a198e2ed48a852ecf8a6f53c8718 100644 (file)
@@ -1,3 +1,7 @@
+2003-07-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * dwarf2out.c (loc_descriptor_from_tree, case CONSTRUCTOR): New case.
+
 2003-07-31  Per Bothner  <pbothner@apple.com>
 
        * opts.c (in_fnames, num_in_fnames):  Moved here from c-opts.
index 591d2da653908c3157d2338523499ad36285e033..bee42a15b22d3d365f571d5140a7e467b530d81d 100644 (file)
@@ -8558,6 +8558,26 @@ loc_descriptor_from_tree (tree loc, int addressp)
        return 0;
       break;
 
+    case CONSTRUCTOR:
+      {
+       /* If this is already in memory and at a constant address, we can
+          support it.  */
+       rtx rtl = TREE_CST_RTL (loc);
+
+#ifdef ASM_SIMPLIFY_DWARF_ADDR
+       if (rtl)
+         rtl = ASM_SIMPLIFY_DWARF_ADDR (rtl);
+#endif
+
+       if (rtl == NULL_RTX ||  GET_CODE (rtl) != MEM
+           || !CONSTANT_P (XEXP (rtl, 0)))
+         return 0;
+
+       indirect_p = 1;
+       ret = mem_loc_descriptor (XEXP (rtl, 0), GET_MODE (rtl));
+       break;
+      }
+
     case TRUTH_AND_EXPR:
     case TRUTH_ANDIF_EXPR:
     case BIT_AND_EXPR: