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

--- Comment #13 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Iain Buclaw <ibuc...@gcc.gnu.org>:

https://gcc.gnu.org/g:8a9ce39f8bbb2ae0798bec0ed2051a5f10b21122

commit r10-7793-g8a9ce39f8bbb2ae0798bec0ed2051a5f10b21122
Author: Iain Buclaw <ibuc...@gdcproject.org>
Date:   Sun Apr 19 09:54:25 2020 +0200

    d: Fix FAIL in gdc.dg/runnable.d on X32 targets (PR94609)

    Patch fixes test failure seen on X32 where a nested struct was passed in
    registers, rather than via invisible reference.  Now, all non-POD
    structs are passed by invisible reference, not just those with a
    user-defined copy constructor/destructor.

    gcc/d/ChangeLog:

            PR d/94609
            * d-codegen.cc (argument_reference_p): Don't check
TREE_ADDRESSABLE.
            (type_passed_as): Build reference type if TREE_ADDRESSABLE.
            * d-convert.cc (convert_for_argument): Build explicit TARGET_EXPR
if
            needed for arguments passed by invisible reference.
            * types.cc (TypeVisitor::visit (TypeStruct *)): Mark all structs
that
            are not POD as TREE_ADDRESSABLE.

Reply via email to