summaryrefslogtreecommitdiff
path: root/gcc/except.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-04-11 01:06:33 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-04-11 01:06:33 +0000
commit017cb5447600a8130e2e7728f7c5a99323407a81 (patch)
tree6b41eef3c11b7c47d9a169095130fbf96ecb89f4 /gcc/except.c
parent05d55a2c955481f8c8c21cdc5348520297e192d9 (diff)
downloadgcc-017cb5447600a8130e2e7728f7c5a99323407a81.tar.gz
* except.c (add_ehl_entry): Allow duplicates after landing pad
creation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52149 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/except.c')
-rw-r--r--gcc/except.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/except.c b/gcc/except.c
index d4a903e597c..e79d23269fe 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -1383,8 +1383,14 @@ add_ehl_entry (label, region)
slot = (struct ehl_map_entry **)
htab_find_slot (exception_handler_label_map, entry, INSERT);
- if (*slot)
+
+ /* Before landing pad creation, each exception handler has its own
+ label. After landing pad creation, the exception handlers may
+ share landing pads. This is ok, since maybe_remove_eh_handler
+ only requires the 1-1 mapping before landing pad creation. */
+ if (*slot && !cfun->eh->built_landing_pads)
abort ();
+
*slot = entry;
}