aboutsummaryrefslogtreecommitdiff
path: root/gcc/final.c
diff options
context:
space:
mode:
authorMike Stump <mrs@wrs.com>1997-11-02 04:43:34 +0000
committerJeff Law <law@gcc.gnu.org>1997-11-01 21:43:34 -0700
commit9ad8a5f011a1842002d83d8559c068b2d932ad8d (patch)
treeba8024cb1dc720576cad966490ee072dd5a264c2 /gcc/final.c
parentf8671389c5c97971bc7b20babdf44c0cacf3f5a0 (diff)
downloadgcc-9ad8a5f011a1842002d83d8559c068b2d932ad8d.zip
gcc-9ad8a5f011a1842002d83d8559c068b2d932ad8d.tar.gz
gcc-9ad8a5f011a1842002d83d8559c068b2d932ad8d.tar.bz2
except.c (expand_ex_region_start_for_decl): Emit EH_REGION_BEG notes for sjlj exceptions too.
* except.c (expand_ex_region_start_for_decl): Emit EH_REGION_BEG notes for sjlj exceptions too. (expand_eh_region_end): Similarly for EH_REGION_END notes. (exception_optimize): Optimize EH regions for sjlj exceptions too. * final.c (final_scan_insn): Don't output labels for EH REGION notes if doing sjlj exceptions. From-SVN: r16266
Diffstat (limited to 'gcc/final.c')
-rw-r--r--gcc/final.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/final.c b/gcc/final.c
index 624e211..d9a410b 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -1379,7 +1379,8 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END)
break;
- if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_EH_REGION_BEG)
+ if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_EH_REGION_BEG
+ && ! exceptions_via_longjmp)
{
ASM_OUTPUT_INTERNAL_LABEL (file, "LEHB", NOTE_BLOCK_NUMBER (insn));
add_eh_table_entry (NOTE_BLOCK_NUMBER (insn));
@@ -1389,7 +1390,8 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
break;
}
- if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_EH_REGION_END)
+ if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_EH_REGION_END
+ && ! exceptions_via_longjmp)
{
ASM_OUTPUT_INTERNAL_LABEL (file, "LEHE", NOTE_BLOCK_NUMBER (insn));
#ifdef ASM_OUTPUT_EH_REGION_END