aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-04-10 18:06:33 -0700
committerRichard Henderson <rth@gcc.gnu.org>2002-04-10 18:06:33 -0700
commit6f3d0447fe81bbea10203da40b4bf2bf48a213cd (patch)
tree6b41eef3c11b7c47d9a169095130fbf96ecb89f4 /gcc
parent67092f4d30194322eeff2901730dc7f61619da2c (diff)
downloadgcc-6f3d0447fe81bbea10203da40b4bf2bf48a213cd.zip
gcc-6f3d0447fe81bbea10203da40b4bf2bf48a213cd.tar.gz
gcc-6f3d0447fe81bbea10203da40b4bf2bf48a213cd.tar.bz2
except.c (add_ehl_entry): Allow duplicates after landing pad creation.
* except.c (add_ehl_entry): Allow duplicates after landing pad creation. From-SVN: r52149
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/except.c8
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 095c88a..482ef8d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-04-10 Richard Henderson <rth@redhat.com>
+
+ * except.c (add_ehl_entry): Allow duplicates after landing pad
+ creation.
+
2002-04-10 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
diff --git a/gcc/except.c b/gcc/except.c
index d4a903e..e79d232 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;
}