diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/except.c | 5 | 
2 files changed, 9 insertions, 0 deletions
| diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ee84a89..9ff2cd7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2004-05-26  Jan Hubicka  <jh@suse.cz> + +	* except.c (can_throw_internal):  Notice RESX instructions. +  2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>  	* varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum diff --git a/gcc/except.c b/gcc/except.c index 2dfd073..5e9ce33 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -3145,6 +3145,11 @@ can_throw_internal (rtx insn)        return false;      } +  if (GET_CODE (insn) == JUMP_INSN +      && GET_CODE (PATTERN (insn)) == RESX +      && XINT (PATTERN (insn), 0) > 0) +    return can_throw_internal_1 (XINT (PATTERN (insn), 0)); +    /* Every insn that might throw has an EH_REGION note.  */    note = find_reg_note (insn, REG_EH_REGION, NULL_RTX);    if (!note || INTVAL (XEXP (note, 0)) <= 0) | 
