* flow.c (find_basic_blocks): Correctly determine when a call
is within an exception region.
From-SVN: r22928
+Thu Oct 8 17:00:18 1998 Richard Henderson <rth@cygnus.com>
+
+ * flow.c (find_basic_blocks): Correctly determine when a call
+ is within an exception region.
+
Thu Oct 8 17:15:04 1998 Jeffrey A Law (law@cygnus.com)
* Makefile.in (cpplib.o): Use unlibsubdir.
register RTX_CODE prev_code = JUMP_INSN;
register RTX_CODE code;
int eh_region = 0;
+ int call_had_abnormal_edge = 0;
max_uid_for_flow = 0;
i++;
else if (prev_code == CALL_INSN)
{
- if (nonlocal_label_list != 0 || eh_region)
+ if (call_had_abnormal_edge)
i++;
else
{
if (code == CALL_INSN && in_libcall_block)
code = INSN;
+ /* Record whether this call created an edge. */
+ if (code == CALL_INSN)
+ call_had_abnormal_edge = (nonlocal_label_list != 0 || eh_region);
+
if (code != NOTE)
prev_code = code;
else if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_EH_REGION_BEG)