> This is really strange. The speculative edges should not be created here at 
> all.
> So perhaps some uninitialized memory access crept in :(
> It would help if you try to track how the ->speculative bit appears for you
> in the loop in cgraph_rebuild_references.  I will try to reproduce your setup 
> now.

OK, it reproduced for me on one of the testers.  I think the bug is that
cgraph edges are not cleared upon allocation and I did not set the newly 
introduced
flag:
Index: cgraph.c
===================================================================
--- cgraph.c    (revision 201640)
+++ cgraph.c    (working copy)
@@ -873,6 +873,7 @@ cgraph_create_edge_1 (struct cgraph_node
 
   edge->indirect_info = NULL;
   edge->indirect_inlining_edge = 0;
+  edge->speculative = false;
 
   return edge;
 }

I will commit this as obvious shortly.
> 
> Honza
> > 
> > -Andi

Reply via email to