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

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jason Merrill <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:0b7a11874d4eb428c18a91f38786032ce0e77a96

commit r12-2313-g0b7a11874d4eb428c18a91f38786032ce0e77a96
Author: Jason Merrill <ja...@redhat.com>
Date:   Wed Jul 14 17:10:49 2021 -0400

    c++: fix tree_contains_struct for C++ types [PR101095]

    Many of the types from cp-tree.def were only marked as having tree_common,
    when actually most of them have type_non_common.  This broke
    g++.dg/modules/xtreme-header-2, as the modules code relies on
    tree_contains_struct to know what bits it needs to stream.

    We don't seem to use type_non_common for TYPE_ARGUMENT_PACK, so I bumped it
    down to TS_TYPE_COMMON.  I tried doing the same in cp_tree_size, but that
    breaks without more extensive changes to tree_node_structure.

    Why do we need the init_ts function anyway?  It seems redundant with
    tree_node_structure.

            PR c++/101095

    gcc/cp/ChangeLog:

            * cp-objcp-common.c (cp_common_init_ts): Mark types as types.
            (cp_tree_size): Remove redundant entries.

Reply via email to