This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] New g++/libstdc++ regressions with checking disabled.
> On Tue, 2003-12-09 at 17:16, Jan Hubicka wrote:
> > >
> > > Incidentally, please do not commit any patches that do not fix these
> > > regressions.
> >
> > I've been looking into it with Jason and it seems to be that culprint is
> > misscopmilation in cp/class.o (at least replacing it by unoptimized
> > version makes the bug to go away).
> > The symptom is that method table contains bogus duplicated overload
> > entries, so it seems to be somewhere in add_method.
> >
> Thanks.
>
> I have reverted the patch that introduced these regressions. The branch
> is open again.
OK.
I was trying to compare the compilations of that file with and without a
patch but the differences are too long for my tired mind today. (the
code looks ineed a lot better with the patch) I will try again tomorrow
unless Richard will beat me :)
Honza
>
>
> Diego.
>
>
> * c-common.c (c_address_looks_like_offsetof): New.
> * c-common.h (c_address_looks_like_offsetof): Declare.
> * c-typeck.c (build_unary_op) <ADDR_EXPR>: Use it. Don't lower
> address references not destined for offsetof.
> (c_expand_return): Only look inside ARRAY_REF and COMPONENT_REF
> when looking for returning address of local variable.
> * expr.c (expand_expr_1): Don't dereference size of unbounded arrays.
> * gimplify.c (gimplify_addr_expr): Only fold address of variable size
> array elements.
> * tree-simple.c (is_gimple_min_invariant): Also check
> is_gimple_variable before disallowing offset address for type.
> * tree-ssa-ccp.c (maybe_fold_offset_to_aggregate_ref): New.
> (maybe_fold_offset_to_component_ref): Use it.
> (maybe_fold_stmt_indirect, maybe_fold_stmt_plus): Likewise.
> (maybe_fold_offset_to_array_ref): Likewise. Don't fail for division
> remainder non-zero.
> * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Use
> handled_component_p and look inside references.
> <MINUS_EXPR>: Always look past widening casts.
>