This is the mail archive of the 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: Results for 3.4-bi 20021213 (experimental) testsuite on

> "John David Anglin" <> writes:
> > Not much difference.  I started looking at the failure of
> > g++.jason/thunk1.C (random selection) as I suspected there might
> > have been some change to thunks.  However, that doesn't seem to
> > be the problem.  It seems that the struct value register (%r28) is not
> > being passed anymore, or the instruction that passes it was deleted.
> > I haven't looked at the rtl yet.
> >
> > Do you recall any changes that might have affected this?
> I don't *recall* any such changes, but this looks suspicious:
> date: 2002/12/14 08:55:32;  author: jason;  state: Exp;  lines: +4 -1
>         * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): New macro.
>         * calls.c (expand_call): Handle it.
>         * tree-inline.c (struct inline_data): Remove target_exprs field.
>         (optimize_inline_calls): Don't initialize it.
>         (expand_call_inline): Don't modify it.  Handle
>         (declare_return_variable): Take return slot addr.
>         * langhooks.h (copy_res_decl_for_inlining): Change target_exprs parm
>         to return_slot_addr.
>         * langhooks-def.h, langhooks.c: Adjust.
>         * explow.c (maybe_set_unchanging): Don't set RTX_UNCHANGING_P for
>         a decl with no DECL_INITIAL.
>         * expr.c (expand_expr): Don't discard the target of a call which
>         returns in memory.
> cp/
>         * semantics.c (simplify_aggr_init_exprs_r): Also prepend the
>         return slot for normal functions.  Set CALL_EXPR_HAS_RETURN_SLOT_ADDR.
>         * tree.c (build_cplus_new): If the type isn't TREE_ADDRESSABLE,
>         don't bother with an AGGR_INIT_EXPR.
>         (cp_copy_res_decl_for_inlining): If the type isn't TREE_ADDRESSABLE,
>         just generate a new decl normally.  Take return slot parm.
>         * cp-tree.h: Adjust prototype.

This patch would appear to be the origin of the new failures.  Backing up
to just before the above results in test results on hppa-unknown-linux-gnu
essentially identical to the main:


As noted in another message in this thread in gcc-testresults, the struct
value address is being passed in the first argument register rather than in
the register specified with STRUCT_VALUE_REGNUM.

J. David Anglin                        
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

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