http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57294
Martin Jambor <jamborm at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jamborm at gcc dot gnu.org --- Comment #5 from Martin Jambor <jamborm at gcc dot gnu.org> --- Actually, the interactions are a bit more convoluted, what happens is the following: 1. Early passes are run on function baz, references are computed for that function. 2. Early passes are run on function bar. IPA-SRA triggers and changes the call statement in function baz. This means that the recorded pointer to the statement in the symbol table is stale. 3. During inlining we ask ipa_find_reference to find the reference corresponding to the correct statement and of course do not get anything, which triggers an assert. I've confirmed this is the case by putting a call to cgraph_rebuild_references into convert_callers_for_node and it "fixes" the issue. But of course that could be quite expensive. I'll revisit my efforts to remove IPA-SRA completely, this is another piece of motivation but I am not entirely sure what to do about this in the short term. Probably update references in IPA-SRA.