This is the mail archive of the gcc@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]

Re: GCC 3.1 ARM crosscompiler crashes (ICE) while compiling GCC 3.1 libstdc++ [was Re: GCC 3.1 ARM assembler problem (glibc 2.2.5 related)]


On Wed, Apr 10, 2002 at 01:07:24PM -0700, Richard Henderson wrote:
> On Wed, Apr 10, 2002 at 10:04:59PM +0200, Karel Gardas wrote:
> > ../../../../gcc3.1/libstdc++-v3/libsupc++/eh_personality.cc:485: Internal
> >    compiler error in add_ehl_entry, at except.c:1441
> 
> I'm working on this one.  It's a sjlj exception problem.

Fixed thus.


r~


        * except.c (add_ehl_entry): Allow duplicates after landing pad
        creation.

Index: except.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/except.c,v
retrieving revision 1.212.2.2
diff -c -p -d -r1.212.2.2 except.c
*** except.c	9 Apr 2002 20:38:56 -0000	1.212.2.2
--- except.c	11 Apr 2002 01:02:28 -0000
*************** add_ehl_entry (label, region)
*** 1437,1444 ****
  
    slot = (struct ehl_map_entry **)
      htab_find_slot (exception_handler_label_map, entry, INSERT);
!   if (*slot)
      abort ();
    *slot = entry;
  }
  
--- 1437,1450 ----
  
    slot = (struct ehl_map_entry **)
      htab_find_slot (exception_handler_label_map, entry, INSERT);
! 
!   /* 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;
  }
  


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