From 8eb2533ac6e1576d2e4414a9d6657e4c2d74e94a Mon Sep 17 00:00:00 2001 From: Vladimir Makarov Date: Tue, 12 Nov 2013 21:33:06 +0000 Subject: [PATCH] re PR other/58712 (issues found by --enable-checking=valgrind) 2013-11-12 Vladimir Makarov PR other/58712 * ira-costs.c (record_operand_costs): Check operands number for the single set. From-SVN: r204720 --- gcc/ChangeLog | 6 ++++++ gcc/ira-costs.c | 3 +++ 2 files changed, 9 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 97ad345b2c3..fd9ca26062a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-11-12 Vladimir Makarov + + PR other/58712 + * ira-costs.c (record_operand_costs): Check operands number for + the single set. + 2013-11-12 Michael Meissner PR target/59054 diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c index 424b99c2c53..d7299e658d7 100644 --- a/gcc/ira-costs.c +++ b/gcc/ira-costs.c @@ -1224,6 +1224,9 @@ record_operand_costs (rtx insn, enum reg_class *pref) preferred class is very expensive as the source of a copy instruction. */ if ((set = single_set (insn)) != NULL_RTX + /* In rare cases the single set insn might have less 2 operands + as the source can be a fixed special reg. */ + && recog_data.n_operands > 1 && ops[0] == SET_DEST (set) && ops[1] == SET_SRC (set)) { int regno, other_regno;