diff --git a/gcc/ira.c b/gcc/ira.c index 89b5df4003d..472fcf52aad 100644 --- a/gcc/ira.c +++ b/gcc/ira.c @@ -5111,6 +5111,11 @@ move_unallocated_pseudos (void) { int idx = i - first_moveable_pseudo; rtx other_reg = pseudo_replaced_reg[idx]; + /* If there is no appropriate pseudo in pseudo_replaced_reg, it + means validate_change fails for this new pseudo in function + find_moveable_pseudos, then bypass it here.*/ + if (!other_reg) + continue; rtx_insn *def_insn = DF_REF_INSN (DF_REG_DEF_CHAIN (i)); /* The use must follow all definitions of OTHER_REG, so we can insert the new definition immediately after any of them. */