This is the mail archive of the
mailing list for the GCC project.
Re: RFA: fix for mudflap 19319, tree_addressable aggregate returns
- From: Richard Henderson <rth at redhat dot com>
- To: "Frank Ch. Eigler" <fche at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Tue, 11 Jan 2005 01:07:35 -0800
- Subject: Re: RFA: fix for mudflap 19319, tree_addressable aggregate returns
- References: <20050110232910.GA7318@redhat.com>
On Mon, Jan 10, 2005 at 06:29:10PM -0500, Frank Ch. Eigler wrote:
> As a recap, the problem is that mudflap instrumentation was not applied
> to aggregate variables (e.g. C++ classes) being returned by value from
> functions. This was because those VAR_DECLs did not have the
> TREE_ADDRESSABLE flag set, even though during rtl expansion, their
> addresses are taken.
That is indeed a generic bug, and would probably show up failures in
more sophisticated aliasing based on non-addressability.
Probably we should be lowering to CALL_EXPR_HAS_RETURN_SLOT_ADDR
during gimplification, if not already done by the front end.
> + pass. Note that vector types need to be explicitly excluded,
> + or else gimplify_expr can fail. */
Then that's some other bug. aggregate_value_p by itself is
the correct test.