https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65515
--- Comment #8 from rguenther at suse dot de <rguenther at suse dot de> --- On Tue, 24 Mar 2015, jakub at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65515 > > --- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- > Created attachment 35124 > --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35124&action=edit > gcc5-pr65515.patch > > Lightly tested fix. Basically, most of DFS::DFS_write_tree is now moved into > a > loop in DFS::DFS, and for most worklist items we see them twice, once with > NULL > w.cstate (that will result in pushing further worklist items to the stack) and > then again with non-NULL w.cstate (which is the part of DFS_write_tree at the > end of function. > The patch reorders the processing of trees embedded in a tree, we'll process > the last inserted once before the earlier inserted ones for the same tree, not > sure if that is a problem or not, but from the DFS POV they are all children > of > the same tree. If that would be a problem, it would be possible to rewrite > DFS_write_tree_body to call DFS_write_tree in reverse order. But I hope it > isn't a problem. This shouldn't be a problem indeed.