web.c (union_match_dups): Ensure that DF_REF_LOC exists before accessing DF_REF_REAL_LOC.

* web.c (union_match_dups): Ensure that DF_REF_LOC exists before
	accessing DF_REF_REAL_LOC.

From-SVN: r199029
This commit is contained in:
Mike Stump 2013-05-17 19:09:56 +00:00 committed by Mike Stump
parent 6db9ce91e4
commit d6545f29e7
2 changed files with 11 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2013-05-17 Mike Stump <mikestump@comcast.net>
* web.c (union_match_dups): Ensure that DF_REF_LOC exists before
accessing DF_REF_REAL_LOC.
2013-05-17 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/57281

View File

@ -133,9 +133,10 @@ union_match_dups (rtx insn, struct web_entry *def_entry,
entry = type == OP_IN ? use_entry : def_entry;
for (; *ref; ref++)
{
if (DF_REF_LOC (*ref) == recog_data.operand_loc[op])
rtx *l = DF_REF_LOC (*ref);
if (l == recog_data.operand_loc[op])
break;
if (DF_REF_REAL_LOC (*ref) == recog_data.operand_loc[op])
if (l && DF_REF_REAL_LOC (*ref) == recog_data.operand_loc[op])
break;
}
@ -143,9 +144,10 @@ union_match_dups (rtx insn, struct web_entry *def_entry,
{
for (ref = use_link, entry = use_entry; *ref; ref++)
{
if (DF_REF_LOC (*ref) == recog_data.operand_loc[op])
rtx *l = DF_REF_LOC (*ref);
if (l == recog_data.operand_loc[op])
break;
if (DF_REF_REAL_LOC (*ref) == recog_data.operand_loc[op])
if (l && DF_REF_REAL_LOC (*ref) == recog_data.operand_loc[op])
break;
}
}