diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-11-02 04:43:34 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-11-02 04:43:34 +0000 |
commit | 1699214257979bcfd824dd55d7cf559c7280f15a (patch) | |
tree | ba8024cb1dc720576cad966490ee072dd5a264c2 /gcc/final.c | |
parent | 589503c94cea3f9ae27f8328a40cc5ee0c2e8db9 (diff) | |
download | ppe42-gcc-1699214257979bcfd824dd55d7cf559c7280f15a.tar.gz ppe42-gcc-1699214257979bcfd824dd55d7cf559c7280f15a.zip |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16266 138bc75d-0d04-0410-961f-82ee72b054a4
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 624e2113f19..d9a410b2b09 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 |