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

--- Comment #5 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Nathaniel Shead <nsh...@gcc.gnu.org>:

https://gcc.gnu.org/g:1aa0f1627857c3e2d90982bdb07ca78ca10b26f3

commit r15-2079-g1aa0f1627857c3e2d90982bdb07ca78ca10b26f3
Author: Nathaniel Shead <nathanielosh...@gmail.com>
Date:   Mon Jul 8 22:25:17 2024 +1000

    c++/modules: Propagate BINDING_VECTOR_*_DUPS_P on realloc [PR99242]

    When importing modules, when a binding vector for a name runs out of
    slots it gets reallocated with a larger size, and existing bindings are
    copied across.  However, the flags to indicate whether deduping needs to
    occur did not: this causes ICEs, as it allows a duplicate binding to be
    added which then violates assumptions later on.

            PR c++/99242

    gcc/cp/ChangeLog:

            * name-lookup.cc (append_imported_binding_slot): Propagate dups
            flags.

    gcc/testsuite/ChangeLog:

            * g++.dg/modules/pr99242_a.H: New test.
            * g++.dg/modules/pr99242_b.H: New test.
            * g++.dg/modules/pr99242_c.H: New test.
            * g++.dg/modules/pr99242_d.C: New test.

    Signed-off-by: Nathaniel Shead <nathanielosh...@gmail.com>

Reply via email to