* except.c (add_ehl_entry): Allow duplicates after landing pad
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Apr 2002 01:06:33 +0000 (01:06 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Apr 2002 01:06:33 +0000 (01:06 +0000)
        creation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52149 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/except.c

index 095c88a..482ef8d 100644 (file)
@@ -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.
index d4a903e..e79d232 100644 (file)
@@ -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;
 }