re PR middle-end/39651 (New cleanup test failures)
PR middle-end/39651 * except.c (can_throw_external): Look at each insn in a SEQUENCE when deciding whether the whole SEQUENCE can throw. From-SVN: r145986
This commit is contained in:
parent
4c48007b43
commit
efaadb930b
@ -1,3 +1,9 @@
|
||||
2009-04-12 Adam Nemet <anemet@caviumnetworks.com>
|
||||
|
||||
PR middle-end/39651
|
||||
* except.c (can_throw_external): Look at each insn in a SEQUENCE
|
||||
when deciding whether the whole SEQUENCE can throw.
|
||||
|
||||
2009-04-12 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/39740
|
||||
|
11
gcc/except.c
11
gcc/except.c
@ -2892,7 +2892,16 @@ can_throw_external (const_rtx insn)
|
||||
|
||||
if (NONJUMP_INSN_P (insn)
|
||||
&& GET_CODE (PATTERN (insn)) == SEQUENCE)
|
||||
insn = XVECEXP (PATTERN (insn), 0, 0);
|
||||
{
|
||||
rtx seq = PATTERN (insn);
|
||||
int i, n = XVECLEN (seq, 0);
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
if (can_throw_external (XVECEXP (seq, 0, i)))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
note = find_reg_note (insn, REG_EH_REGION, NULL_RTX);
|
||||
if (!note)
|
||||
|
Loading…
Reference in New Issue
Block a user