------- Comment #10 from pinskia at gcc dot gnu dot org  2005-11-19 02:31 
-------
Here is a shorter testcase:
long fff(int*);

long F2(int *node)
{
 long call_result = 0;

 if (call_result = fff(node))
  goto error_free_node;

 T(node);
 return 0;

error_free_node:
 T(node);
 return call_result;
}
-------

The problem is related to that instruction pattern in comment #9, for some
reason we think it is just a jump so we remove the fall through edge and BB and
then we ICE as we have a conditional jump and only one edge.

any_condjump_p returns the correct value of one but cleanup edges must use a
different function to check for this.  Looking more into this.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24626

Reply via email to