diff options
author | Mike Stump <mrs@wrs.com> | 1997-11-02 04:43:34 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1997-11-01 21:43:34 -0700 |
commit | 9ad8a5f011a1842002d83d8559c068b2d932ad8d (patch) | |
tree | ba8024cb1dc720576cad966490ee072dd5a264c2 /gcc/final.c | |
parent | f8671389c5c97971bc7b20babdf44c0cacf3f5a0 (diff) | |
download | gcc-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.c | 6 |
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 |