summaryrefslogtreecommitdiffstats
path: root/gcc/final.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-11-02 04:43:34 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-11-02 04:43:34 +0000
commit1699214257979bcfd824dd55d7cf559c7280f15a (patch)
treeba8024cb1dc720576cad966490ee072dd5a264c2 /gcc/final.c
parent589503c94cea3f9ae27f8328a40cc5ee0c2e8db9 (diff)
downloadppe42-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.c6
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
OpenPOWER on IntegriCloud