https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114229
--- Comment #4 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:9ccd03dee4c35a24c6699a58a7251a5277a91cf5

commit r14-9375-g9ccd03dee4c35a24c6699a58a7251a5277a91cf5
Author: Nathaniel Shead <nathanielosh...@gmail.com>
Date:   Thu Mar 7 23:09:03 2024 +1100

    c++: Redetermine whether to write vtables on stream-in [PR114229]

    We currently always stream DECL_INTERFACE_KNOWN, which is needed since
    many kinds of declarations already have their interface determined at
    parse time.  But for vtables and type-info declarations we need to
    re-evaluate on stream-in as whether they need to be emitted or not
    changes in each TU, so this patch clears DECL_INTERFACE_KNOWN on these
    kinds of declarations so that they can go through 'import_export_decl'
    again.

    Note that the precise details of the virt-2 tests will need to change
    when we implement the resolution of [1], for now I just updated the test
    to not fail with the new (current) semantics.

    [1]: https://github.com/itanium-cxx-abi/cxx-abi/pull/171

            PR c++/114229

    gcc/cp/ChangeLog:

            * module.cc (trees_out::core_bools): Redetermine
            DECL_INTERFACE_KNOWN on stream-in for vtables and tinfo.
            * decl2.cc (import_export_decl): Add fixme for ABI changes with
            module vtables and tinfo.

    gcc/testsuite/ChangeLog:

            * g++.dg/modules/virt-2_b.C: Update test to acknowledge that we
            now emit vtables here too.
            * g++.dg/modules/virt-3_a.C: New test.
            * g++.dg/modules/virt-3_b.C: New test.
            * g++.dg/modules/virt-3_c.C: New test.
            * g++.dg/modules/virt-3_d.C: New test.

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

Reply via email to