flow.c (find_basic_blocks): Correctly determine when a call is within an exception region.
* flow.c (find_basic_blocks): Correctly determine when a call is within an exception region. From-SVN: r22928
This commit is contained in:
parent
0cc291f759
commit
c2b7e122db
2 changed files with 11 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
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.
|
||||
|
|
|
@ -314,6 +314,7 @@ find_basic_blocks (f, nregs, file, live_reachable_p)
|
|||
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;
|
||||
|
||||
|
@ -335,7 +336,7 @@ find_basic_blocks (f, nregs, file, live_reachable_p)
|
|||
i++;
|
||||
else if (prev_code == CALL_INSN)
|
||||
{
|
||||
if (nonlocal_label_list != 0 || eh_region)
|
||||
if (call_had_abnormal_edge)
|
||||
i++;
|
||||
else
|
||||
{
|
||||
|
@ -360,6 +361,10 @@ find_basic_blocks (f, nregs, file, live_reachable_p)
|
|||
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)
|
||||
|
|
Loading…
Add table
Reference in a new issue