This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Avoid ICE when have GC in nested function inside EH region


Sat Nov 17 12:06:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* except.c (enum eh_region_type): Add ERT_UNKNOWN.
	(mark_eh_region, case ERT_UKNONW): New case.

*** except.c	2001/11/16 12:48:16	1.202
--- except.c	2001/11/17 16:53:12
*************** struct eh_region
*** 129,133 ****
    enum eh_region_type
    {
!     ERT_CLEANUP = 1,
      ERT_TRY,
      ERT_CATCH,
--- 129,134 ----
    enum eh_region_type
    {
!     ERT_UNKNOWN = 0,
!     ERT_CLEANUP,
      ERT_TRY,
      ERT_CATCH,
*************** mark_eh_region (region)
*** 479,482 ****
--- 480,487 ----
    switch (region->type)
      {
+     case ERT_UNKNOWN:
+       /* This can happen if a nested function is inside the body of a region
+ 	 and we do a GC as part of processing it.  */
+       break;
      case ERT_CLEANUP:
        ggc_mark_tree (region->u.cleanup.exp);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]