This is the mail archive of the gcc-bugs@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]

[Bug tree-optimization/51737] [4.6 Regression] g++ crashes (internal compiler error: Segmentation fault) when compiling quickbook


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

Martin Jambor <jamborm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu.org

--- Comment #10 from Martin Jambor <jamborm at gcc dot gnu.org> 2012-01-06 12:02:04 UTC ---
This bug is not triggered when IPA-SRA is switched off, however, from
what I have seen in the debugger, I don't think the bug is in IPA-SRA
but that it is in fact an inlining problem (and also very probably
just latent on trunk).

The immediate reason for the segfault is that one of very many inline
clones of "intrusive_ptr<T>::~intrusive_ptr() [with T = file_info]"
have NULL clone_of pointer.  Looking more into why, I noticed that
immediately before the crash id->dst_node->clones is NULL too, which
should not happen since this code is guarded by a condition that this
pointer is not NULL.

Therefore I assume that the real problem is that it is not safe to
call cgraph_remove_node_and_inline_clones on "inlined recursive" edges
from delete_unreachable_blocks_update_callgraph since it destroys the
clone tree we are traversing.

Currently I do not know what to do about this other than push the
nodes to be deleted on a stack and remove after the traversal.
Honza, do you have a better idea?


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