summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2003-07-31 22:26:19 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2003-07-31 22:26:19 +0000
commita283c1dda0fe9dd9bf191bcf45d468b711447b4c (patch)
treea8d287874b6951b1150ab44bea823aa7714c22bf
parenta38162d82caa157c2592a20c21297d6112ea1ca1 (diff)
downloadppe42-gcc-a283c1dda0fe9dd9bf191bcf45d468b711447b4c.tar.gz
ppe42-gcc-a283c1dda0fe9dd9bf191bcf45d468b711447b4c.zip
* dwarf2out.c (loc_descriptor_from_tree, case CONSTRUCTOR): Fix error.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70019 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/dwarf2out.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index bee42a15b22..91336a12d28 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -8560,19 +8560,15 @@ loc_descriptor_from_tree (tree loc, int addressp)
case CONSTRUCTOR:
{
- /* If this is already in memory and at a constant address, we can
- support it. */
- rtx rtl = TREE_CST_RTL (loc);
+ /* Get an RTL for this, which will may have the effect of outputting
+ it. This may violates the principle of not having -g affect
+ the generated code, but it's in the data segment and it's hard
+ to see a case where it won't already have been output. */
+ rtx rtl = output_constant_def (loc, 0);
#ifdef ASM_SIMPLIFY_DWARF_ADDR
- if (rtl)
- rtl = ASM_SIMPLIFY_DWARF_ADDR (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;
OpenPOWER on IntegriCloud