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.


On Tue, Nov 18, 2008 at 12:00, Doug Kwan (éæå) <dougkwan@google.com> wrote:

> Yes, I have another sandbox with a back-patching based fix but it is
> not done.  The problem, as I have mentioned earlier, is that we are
> not registering trees, but rather pointer to trees.  So for any fields
> like
>
>   b->f = input_tree (...);
>
> we have to check that if b->f is a global VAR_DECL or FUNC_DECL and
> then stash &(b->f) away for later fixing up.  Since the original code
> in lto-function-in.c is not set up for back-patching, a change like
> this could be very extensive and error-prone.

Oh, yes, good point.  I have planned to overhaul the streamer as soon
as we get to a more stable state.  I will just try to incorporate this
in the new design.  No point making extensive changes now.


>> I prefer if we access the fields using the the DECL_* macros.
>> I've been meaning to change this in the streamer for a while now,
>> so I'd rather not generate new instances of this.  We won't need
>> explicit call to *_CHECK in that case.
>
> Some field can be changed to access but not all.  There are fields in
> based types that are overloaded with only accessors in derived types.
> For example, there is no accessor for type.minval.  I can change the
> rest though.

TYPE_MIN_VALUE accesses type.minval, but there will be others that may
have accessors outside of tree.h.  It's OK to access those separately.


Thanks.  Diego.


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