optabs.c (prepare_operand): Fail gracefully instead of abort if the predicate doesn't satisfy.
2003-07-18 Richard Henderson <rth@redhat.com> * optabs.c (prepare_operand): Fail gracefully instead of abort if the predicate doesn't satisfy. (gen_cond_trap): Allow prepare_operand to fail. From-SVN: r69578
This commit is contained in:
parent
3b1eae7b3b
commit
d893ccde91
2 changed files with 17 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
2003-07-18 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* optabs.c (prepare_operand): Fail gracefully instead of abort
|
||||
if the predicate doesn't satisfy.
|
||||
(gen_cond_trap): Allow prepare_operand to fail.
|
||||
|
||||
2003-07-19 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||||
|
||||
* c-common.c: Don't undefine GCC_DIAG_STYLE.
|
||||
|
|
10
gcc/optabs.c
10
gcc/optabs.c
|
@ -3725,7 +3725,12 @@ prepare_operand (int icode, rtx x, int opnum, enum machine_mode mode,
|
|||
|
||||
if (! (*insn_data[icode].operand[opnum].predicate)
|
||||
(x, insn_data[icode].operand[opnum].mode))
|
||||
{
|
||||
if (no_new_pseudos)
|
||||
return NULL_RTX;
|
||||
x = copy_to_mode_reg (insn_data[icode].operand[opnum].mode, x);
|
||||
}
|
||||
|
||||
return x;
|
||||
}
|
||||
|
||||
|
@ -5736,6 +5741,11 @@ gen_cond_trap (enum rtx_code code ATTRIBUTE_UNUSED, rtx op1,
|
|||
start_sequence ();
|
||||
op1 = prepare_operand (icode, op1, 0, mode, mode, 0);
|
||||
op2 = prepare_operand (icode, op2, 1, mode, mode, 0);
|
||||
if (!op1 || !op2)
|
||||
{
|
||||
end_sequence ();
|
||||
return 0;
|
||||
}
|
||||
emit_insn (GEN_FCN (icode) (op1, op2));
|
||||
|
||||
PUT_CODE (trap_rtx, code);
|
||||
|
|
Loading…
Add table
Reference in a new issue