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

Re: [LTO][PATCH] Fix ICE in output_tree.


2008/11/17 Diego Novillo <dnovillo@google.com>:

> The problem I see with this approach is that it adds a lot of bulk
> just to catch other sub-fields.  What is walk_tree missing?  We
> generally just handled things that walk_tree doesn't look at.  Is it
> really more code adding the missing cases to walk_tree?

That case be done as well.  Right now the missing cases that matters
is the FIELD_DECL and of TYPEs.  I think I can just add that cases and
be done with this bug but there is no guarantee that we will not hit
this again with other node.  Of course, I can all add all missing
cases to the call-back like I do with this patch.

> How about this alternative.  During streaming, we push into a vector
> the addresses of all the DECLs that will need fixup afterwards.  Then
> in lto_fixup_decls we just have to traverse this array and be done
> with it.

We are not fixing up the DECLs but the trees that points to them.  So
the we need to push the locations of pointers to DECLs.  That may not
be feasible for some data structures like DECL_DEBUG_EXPR or tree
vectors.

-Doug


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