https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101718

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Iain D Sandoe
<ia...@gcc.gnu.org>:

https://gcc.gnu.org/g:903c18c65c4eb135eb3c67a3c14fb6c20f537feb

commit r10-10807-g903c18c65c4eb135eb3c67a3c14fb6c20f537feb
Author: Iain Sandoe <i...@sandoe.co.uk>
Date:   Mon Aug 16 21:22:13 2021 +0100

    Objective-C, NeXT: Fix messenging non-aggregate return-in-memory.

    When a method returns a type that the platform ABI says should be
    returned in memory, and that is done by a hidden 'sret' parameter,
    the message send calls must be adjusted to inform the runtime that
    the sret parameter is present.  As reported in the PR, this is not
    working for non-aggregate types that use this mechanism.  The fix
    here is to adjust the logic such that all return values that flag
    'in memory' are considered to use the mechanism *unless* they
    provide a struct_value_rtx *and* the return object is an aggregate.

    Signed-off-by: Iain Sandoe <i...@sandoe.co.uk>

    PR objc/101718 - Objective-C frontend emits wrong code to call methods
returning scalar types returned in memory

            PR objc/101718

    gcc/objc/ChangeLog:

            * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call):
            Revise for cases where scalar objects use an sret parameter.
            (next_runtime_abi_02_build_objc_method_call): Likwise.

    (cherry picked from commit 1cef3039b880a21fbdf4153e6fc42026619fd4ad)
  • [Bug objc/101718] Objective-C f... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to