From 32e66afd7f82ae62f3232146743d3ab7eec86557 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 13 Oct 2004 16:25:13 -0700 Subject: [PATCH] re PR debug/13841 (missing debug info for _Complex function arguments) PR debug/13841 * function.c (instantiate_decl): Recurse for CONCAT. From-SVN: r89007 --- gcc/ChangeLog | 5 +++++ gcc/function.c | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dc013694fe9..826702127d5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-10-13 Richard Henderson + + PR debug/13841 + * function.c (instantiate_decl): Recurse for CONCAT. + 2004-10-13 David Edelsohn * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for 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); -- 2.30.2