This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/4794] gcc hangs on small, simple code fragment
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 1 Dec 2003 22:53:47 -0000
- Subject: [Bug c++/4794] gcc hangs on small, simple code fragment
- References: <20011105124600.4794.fritz@intrinsity.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From steven at gcc dot gnu dot org 2003-12-01 22:53 -------
I'm not sure yet, but the bt is never really that long, and when I put a
conditional breakpoint on has_cleanups with some tree pointer, I get a lot of
breaks there. Smells like a (series of) circular trees.
I have fixed this kind of bug before in the tree inliner by using
walk_tree_without_duplicates. That may not be a possible solution in this
case because walk_tree is in tree-inline.c and has_cleanups is in tree.c (yes,
Of course walk_tree should go there too, and it is already done for tree-ssa).
A possible fix for 3.4 is to mimic w_t_wo_d() here and use a hash table to
mark trees that have already been visited. Or perhaps has_cleanups can be
moved to tree-inline and rewritten to work as a walk_tree callback function.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=4794