diff options
| author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-07-31 21:31:24 +0000 |
|---|---|---|
| committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-07-31 21:31:24 +0000 |
| commit | 15b7bb1141620f7a3b03fa9cd9aee281f892c89b (patch) | |
| tree | 8c6f366e4a3ecb5d2bfbafab8b00cbda056ba172 /gcc/dwarf2out.c | |
| parent | dcfa26d9a6f914b73171fa3b6f28726a427b347a (diff) | |
| download | ppe42-gcc-15b7bb1141620f7a3b03fa9cd9aee281f892c89b.tar.gz ppe42-gcc-15b7bb1141620f7a3b03fa9cd9aee281f892c89b.zip | |
* dwarf2out.c (loc_descriptor_from_tree, case CONSTRUCTOR): New case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70013 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/dwarf2out.c')
| -rw-r--r-- | gcc/dwarf2out.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 591d2da6539..bee42a15b22 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -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: |

