aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2011-03-17 21:34:59 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2011-03-17 21:34:59 +0100
commit8b29c87a61bf1ea9aa4691dd3c07ef79119d790a (patch)
treefd0300df57304dd7396f7bb1e39f442d95962b51 /gcc/dwarf2out.c
parenta82ff31f392508ef56c4021a711ec08982dadf76 (diff)
downloadgcc-8b29c87a61bf1ea9aa4691dd3c07ef79119d790a.zip
gcc-8b29c87a61bf1ea9aa4691dd3c07ef79119d790a.tar.gz
gcc-8b29c87a61bf1ea9aa4691dd3c07ef79119d790a.tar.bz2
re PR debug/48163 (ICEs for cris-elf, like gcc.c-torture/compile/calls.c gcc.c-torture/execute/complex-1.c)
PR debug/48163 * var-tracking.c (prepare_call_arguments): If CALL target is a non-SYMBOL_REF CONSTANT_P, just add that into the list as pc instead of looking it up using cselib_lookup and use Pmode for it if x has VOIDmode. * dwarf2out.c (gen_subprogram_die): If also both first and second CONCAT arguments are VOIDmode, use mode of CONCAT itself. From-SVN: r171114
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r--gcc/dwarf2out.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 31d9a0e..74905e3 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -19481,7 +19481,11 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
== REGNO (XEXP (XEXP (XEXP (next_arg, 0), 0), 0)))
next_arg = XEXP (next_arg, 1);
if (mode == VOIDmode)
- mode = GET_MODE (XEXP (XEXP (arg, 0), 0));
+ {
+ mode = GET_MODE (XEXP (XEXP (arg, 0), 0));
+ if (mode == VOIDmode)
+ mode = GET_MODE (XEXP (arg, 0));
+ }
if (GET_MODE_CLASS (mode) != MODE_INT
|| GET_MODE_SIZE (mode) > DWARF2_ADDR_SIZE)
continue;