except.c (add_ehl_entry): Allow duplicates after landing pad creation.
authorRichard Henderson <rth@redhat.com>
Thu, 11 Apr 2002 01:06:33 +0000 (18:06 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 11 Apr 2002 01:06:33 +0000 (18:06 -0700)
        * except.c (add_ehl_entry): Allow duplicates after landing pad
        creation.

From-SVN: r52149

gcc/ChangeLog
gcc/except.c

index 095c88a98b74f2e315e61e2b3f21edab25634247..482ef8d2a083378277e54e505f3006a8d4c59489 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 d4a903e597c5c9de678b722d80a51e5bbca89169..e79d23269fe9c94e4642ac2886a35cb90a40c38f 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;
 }