This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] variable size arrays in nested functions
On Fri, Feb 09, 2001 at 03:07:47PM -0500, Jakub Jelinek wrote:
> Basically, what's going on is that variable_size takes care of putting the
> SAVE_EXPR on pending list, but SAVE_EXPRs can be created deeply from fold
> (the problematic SAVE_EXPR is actually created from within build_array_type
> when building TREE_SIZE()). get_pending_sizes() takes care of fixing up
> context of the SAVE_EXPRs recorded by variable_size but this one slips
Oh. I see. Dear lord this is ugly. Let us all look forward to that
blessed day in which SAVE_EXPR is forever banished to the pit.
I have a feeling that the code in extract_muldiv that is creating the
new SAVE_EXPR in question is not safe. I think it _was_ safe when we
were evaluating things a statement at a time, but not now that we are
doing functions as trees. Because now "SAVE_EXPR_RTL (t) == 0" doesn't
mean that there isn't a (program order) previous ocurrence of T and
a subsequent modification of one of T's arguments.
Does removing the SAVE_EXPR case from extract_muldiv also solve the