On 10/09/2015 07:55 AM, Thomas Schwinge wrote:
Hi Nathan!

Thanks for looking into this.  When I reported this,
<http://news.gmane.org/find-root.php?message_id=%3C87fv3is74z.fsf%40schwinge.name%3E>,
quite a lot of testcases had been failing -- with recent GCC trunk, the
number is smaller (because of other middle end/optimization changes, I
suppose).  Yet, the problem still can be observed; grep for "%retval" in
g++.log.

On Thu, 8 Oct 2015 13:33:55 -0400, Nathan Sidwell <nat...@acm.org> wrote:
I've committed this to trunk.  The C++ ABI now returns a pointer to the
passed-in artificial arg that points to the return area.  consequently
return-in-mem and type_mode(return_type) == VOIDmode are  not tautologies.

        * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
        may return pointer as well as in memory.
        (nvptx_output_return): Likewise.

Hmm, but what I now see happening is that now there is incorrect
"%out_retval" usage (but it's not part of the function prototypes), for
example:

Does the caller end up using that extra pointer? Otherwise, just reusing TARGET_OMIT_STRUCT_RETURN_REG might be useful.


Bernd

Reply via email to