This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Avoid ICE when have GC in nested function inside EH region
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: gcc-patches at gcc dot gnu dot org
- Date: Sat, 17 Nov 01 12:42:09 EST
- Subject: 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);