aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2009-10-28 14:36:28 +0000
committerJakub Jelinek <jakub@gcc.gnu.org>2009-10-28 15:36:28 +0100
commite70545b0a5fa64ce4e5199ff4649db089a20edb3 (patch)
tree617a6536e511b810e56896ddde09802e5045d7ac
parentf883d997700c6f3d5f14d3ade0a924a9dff118ef (diff)
downloadgcc-e70545b0a5fa64ce4e5199ff4649db089a20edb3.zip
gcc-e70545b0a5fa64ce4e5199ff4649db089a20edb3.tar.gz
gcc-e70545b0a5fa64ce4e5199ff4649db089a20edb3.tar.bz2
var-tracking.c (emit_note_insn_var_location): Get the mode of a variable part from its REG, MEM or VALUE.
* var-tracking.c (emit_note_insn_var_location): Get the mode of a variable part from its REG, MEM or VALUE. From-SVN: r153665
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/var-tracking.c4
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 <rdsandiford@googlemail.com>
+
+ * 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 <rguenther@suse.de>
* 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;