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

--- Comment #1 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:2370bdbb0b29b14401d8508d846c0e01c64d82fc

commit r10-7975-g2370bdbb0b29b14401d8508d846c0e01c64d82fc
Author: Iain Buclaw <ibuc...@gdcproject.org>
Date:   Sun Apr 26 23:39:32 2020 +0200

    d: Fix ICE in assign_temp, at function.c:984 (PR94777)

    Named arguments were being passed around by invisible reference, just
    not variadic arguments.  There is a need to de-duplicate the routines
    that handle declaration/parameter promotion and reference checking.
    However for now, the parameter helper functions have just been renamed
    to parameter_reference_p and parameter_type, to make it more clear that
    it is the Parameter equivalent to declaration_reference_p and
    declaration_type.

    On writing the tests, a forward-reference bug was discovered on x86_64
    during va_list type semantic.  This was due to fields not having their
    parent set-up correctly.

    gcc/d/ChangeLog:

            PR d/94777
            * d-builtins.cc (build_frontend_type): Set parent for generated
            fields of built-in types.
            * d-codegen.cc (argument_reference_p): Rename to ...
            (parameter_reference_p): ... this.
            (type_passed_as): Rename to ...
            (parameter_type): ... this.  Make TREE_ADDRESSABLE types restrict.
            (d_build_call): Move handling of non-POD types here from ...
            * d-convert.cc (convert_for_argument): ... here.
            * d-tree.h (argument_reference_p): Rename declaration to ...
            (parameter_reference_p): ... this.
            (type_passed_as): Rename declaration to ...
            (parameter_type): ... this.
            * types.cc (TypeVisitor::visit (TypeFunction *)): Update caller.

    gcc/testsuite/ChangeLog:

            PR d/94777
            * gdc.dg/pr94777a.d: New test.
            * gdc.dg/pr94777b.d: New test.

Reply via email to