* cfgbuild.c (control_flow_insn_p): Notice noreturn call

From-SVN: r82321
This commit is contained in:
Jan Hubicka 2004-05-27 14:56:30 +02:00 committed by Jan Hubicka
parent 63645982e7
commit baf8706c69
2 changed files with 10 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2004-05-27 Jan Hubicka <jh@suse.cz>
* cfgbuild.c (control_flow_insn_p): Notice noreturn call
2004-05-25 Paolo Bonzini <bonzini@gnu.org>
* combine.c (gen_binary): Remove.

View File

@ -108,6 +108,12 @@ control_flow_insn_p (rtx insn)
&& GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC);
case CALL_INSN:
/* Noreturn and sibling call instructions terminate the basic blocks
(but only if they happen unconditionally). */
if ((SIBLING_CALL_P (insn)
|| find_reg_note (insn, REG_NORETURN, 0))
&& GET_CODE (PATTERN (insn)) != COND_EXEC)
return true;
/* Call insn may return to the nonlocal goto handler. */
return ((nonlocal_goto_handler_labels
&& (0 == (note = find_reg_note (insn, REG_EH_REGION,