From cb1150418276ecc5a39261ad5a4204c8d9632803 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 5 Nov 2010 12:08:01 +0100 Subject: cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset. * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset. From-SVN: r166353 --- gcc/cfgexpand.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'gcc/cfgexpand.c') diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index b302591..c44649e 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -2552,15 +2552,20 @@ expand_debug_expr (tree exp) } case MEM_REF: - /* ??? FIXME. */ - if (!integer_zerop (TREE_OPERAND (exp, 1))) - return NULL; - /* Fallthru. */ case INDIRECT_REF: op0 = expand_debug_expr (TREE_OPERAND (exp, 0)); if (!op0) return NULL; + if (TREE_CODE (exp) == MEM_REF) + { + op1 = expand_debug_expr (TREE_OPERAND (exp, 1)); + if (!op1 || !CONST_INT_P (op1)) + return NULL; + + op0 = plus_constant (op0, INTVAL (op1)); + } + if (POINTER_TYPE_P (TREE_TYPE (exp))) as = TYPE_ADDR_SPACE (TREE_TYPE (TREE_TYPE (exp))); else -- cgit v1.1