From f8dab706c724568ee907b5b6c39c544639da5d86 Mon Sep 17 00:00:00 2001 From: jakub Date: Wed, 28 Oct 2009 14:36:28 +0000 Subject: [PATCH] * var-tracking.c (emit_note_insn_var_location): Get the mode of a variable part from its REG, MEM or VALUE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@153665 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/var-tracking.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d2309d5..8c9048e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-10-28 Richard Sandiford + + * var-tracking.c (emit_note_insn_var_location): Get the mode of + a variable part from its REG, MEM or VALUE. + 2009-10-28 Richard Guenther * gimple.c (gimple_get_alias_set): Fix comment typo. diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c index 9fa1921..61ce32b 100644 --- a/gcc/var-tracking.c +++ b/gcc/var-tracking.c @@ -6416,7 +6416,7 @@ emit_note_insn_var_location (void **varp, void *data) continue; } loc[n_var_parts] = loc2; - mode = GET_MODE (loc[n_var_parts]); + mode = GET_MODE (var->var_part[i].loc_chain->loc); initialized = var->var_part[i].loc_chain->init; last_limit = offsets[n_var_parts] + GET_MODE_SIZE (mode); @@ -6427,9 +6427,9 @@ emit_note_insn_var_location (void **varp, void *data) break; if (j < var->n_var_parts && wider_mode != VOIDmode + && mode == GET_MODE (var->var_part[j].loc_chain->loc) && (loc2 = vt_expand_loc (var->var_part[j].loc_chain->loc, vars)) && GET_CODE (loc[n_var_parts]) == GET_CODE (loc2) - && mode == GET_MODE (loc2) && last_limit == var->var_part[j].offset) { rtx new_loc = NULL; -- 2.7.4