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: Regression with "Re: [vtab (and trunk?)] fix fallout from SSA-coalescing user variables"


On Oct  6, 2007, Hans-Peter Nilsson <hans-peter.nilsson@axis.com> wrote:

> Running /tmp/hpautotest-gcc1/gcc/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp ...
> ...
> FAIL: ext/pb_ds/regression/hash_no_data_map_rand.cc (test for excess errors)

> /tmp/hpautotest-gcc1/gcc/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/constructor_destructor_fn_imps.hpp:215: internal compiler error: in update_ssa_across_abnormal_edges, at tree-inline.c:1058

AFAICT, this error is a result of unnecessary abnormal edges being
conservatively inserted and then removed before the end of the pass.
This patch fixes the too-conservative assertion I'd added.  If we ever
run into a case in which the edge is not removed before the end of the
pass, the verification code I've added in the previous patch will
catch it.

Ok to install?  Build-tested on x86_64-linux-gnu, no regressions are
possible since all it does is to relax an assertion that had never hit
before and that would have caused an instant ICE.

for  gcc/ChangeLog
from  Alexandre Oliva  <aoliva@redhat.com>

	PR tree-optimization/33572
	* tree-inline.c (update_ssa_across_abnormal_edges): Tolerate
	the absence of a corresponding edge from the exit block.

Index: gcc/tree-inline.c
===================================================================
--- gcc/tree-inline.c.orig	2007-10-08 15:41:47.000000000 -0300
+++ gcc/tree-inline.c	2007-10-08 15:42:42.000000000 -0300
@@ -1055,7 +1055,8 @@ update_ssa_across_abnormal_edges (basic_
 	      }
 
 	    re = find_edge (ret_bb, e->dest);
-	    gcc_assert (re);
+	    if (!re)
+	      continue;
 	    gcc_assert ((re->flags & (EDGE_EH | EDGE_ABNORMAL))
 			== (e->flags & (EDGE_EH | EDGE_ABNORMAL)));
 

-- 
Alexandre Oliva         http://www.lsd.ic.unicamp.br/~oliva/
FSF Latin America Board Member         http://www.fsfla.org/
Red Hat Compiler Engineer   aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist  oliva@{lsd.ic.unicamp.br, gnu.org}

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