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]

Re: 3 GCC regressions, 3 new, with your patch on 2002-03-05T18:05:20Z.


> /home/hp/cvs_areas/combined/cvs_write/libstdc++-v3/libsupc++/eh_aux_runtime.cc
> -o eh_aux_ru\
> ntime.o
> /home/hp/cvs_areas/combined/cvs_write/libstdc++-v3/libsupc++/eh_aux_runtime.cc:
> In
>    function `void __cxa_bad_cast()':
> /home/hp/cvs_areas/combined/cvs_write/libstdc++-v3/libsupc++/eh_aux_runtime.cc:46:
> Missing
>    REG_EH_REGION note in the end of bb 8
> /home/hp/cvs_areas/combined/cvs_write/libstdc++-v3/libsupc++/eh_aux_runtime.cc:46:
> verify_flow_info
>    failed

This is caused by RESX instructions that do not have REGION note but still
can cause EH_EDGE.  I missed them as they are shortlived, sorry.

The attached patch solves equivalent problem on PPC and I am going to commit
it as obvious once i386 bootstrap/regtesting complettes.

I apologize for the breakage.

Honza

Wed Mar  6 19:04:05 CET 2002  Jan Hubicka  <jh@suse.cz>
	* cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
Index: cfgrtl.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cfgrtl.c,v
retrieving revision 1.33
diff -c -3 -p -r1.33 cfgrtl.c
*** cfgrtl.c	2002/03/06 10:17:14	1.33
--- cfgrtl.c	2002/03/06 17:57:39
*************** verify_flow_info ()
*** 1855,1861 ****
  	  edge_checksum[e->dest->index + 2] += (size_t) e;
  	}
  
!       if (n_eh && !find_reg_note (bb->end, REG_EH_REGION, NULL_RTX))
  	{
  	  error ("Missing REG_EH_REGION note in the end of bb %i", bb->index);
  	  err = 1;
--- 1855,1862 ----
  	  edge_checksum[e->dest->index + 2] += (size_t) e;
  	}
  
!       if (n_eh && GET_CODE (PATTERN (bb->end)) != RESX
! 	  && !find_reg_note (bb->end, REG_EH_REGION, NULL_RTX))
  	{
  	  error ("Missing REG_EH_REGION note in the end of bb %i", bb->index);
  	  err = 1;


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