diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-10-13 23:25:13 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-10-13 23:25:13 +0000 |
commit | 00dfb616ad0add4ba6f8bdf0db3bd9b11dfba7aa (patch) | |
tree | 8e8e95b233724fcd2ac3a885b01af5e77abb9062 /gcc/function.c | |
parent | de8e3d684254a2f51adb697792723302db31030c (diff) | |
download | gcc-00dfb616ad0add4ba6f8bdf0db3bd9b11dfba7aa.tar.gz |
PR debug/13841
* function.c (instantiate_decl): Recurse for CONCAT.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89007 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/function.c b/gcc/function.c index a8bd0f5b5fd..8d6f8fb3586 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -1343,10 +1343,20 @@ instantiate_decl (rtx x, HOST_WIDE_INT size, int valid_only) enum machine_mode mode; rtx addr; + if (x == 0) + return; + + /* If this is a CONCAT, recurse for the pieces. */ + if (GET_CODE (x) == CONCAT) + { + instantiate_decl (XEXP (x, 0), size / 2, valid_only); + instantiate_decl (XEXP (x, 1), size / 2, valid_only); + return; + } + /* If this is not a MEM, no need to do anything. Similarly if the address is a constant or a register that is not a virtual register. */ - - if (x == 0 || !MEM_P (x)) + if (!MEM_P (x)) return; addr = XEXP (x, 0); |