case DEFERRED_NOEXCEPT: return sizeof (tree_deferred_noexcept);
case OVERLOAD: return sizeof (tree_overload);
case STATIC_ASSERT: return sizeof (tree_static_assert);
- case TYPE_ARGUMENT_PACK:
- case TYPE_PACK_EXPANSION: return sizeof (tree_type_non_common);
- case NONTYPE_ARGUMENT_PACK:
- case EXPR_PACK_EXPANSION: return sizeof (tree_exp);
+#if 0
+ /* This would match cp_common_init_ts, but breaks GC because
+ tree_node_structure_for_code returns TS_TYPE_NON_COMMON for all
+ types. */
+ case UNBOUND_CLASS_TEMPLATE:
+ case TYPE_ARGUMENT_PACK: return sizeof (tree_type_common);
+#endif
case ARGUMENT_PACK_SELECT: return sizeof (tree_argument_pack_select);
case TRAIT_EXPR: return sizeof (tree_trait_expr);
case LAMBDA_EXPR: return sizeof (tree_lambda_expr);
/* Random new trees. */
MARK_TS_COMMON (BASELINK);
- MARK_TS_COMMON (DECLTYPE_TYPE);
MARK_TS_COMMON (OVERLOAD);
MARK_TS_COMMON (TEMPLATE_PARM_INDEX);
- MARK_TS_COMMON (TYPENAME_TYPE);
- MARK_TS_COMMON (TYPEOF_TYPE);
- MARK_TS_COMMON (UNBOUND_CLASS_TEMPLATE);
- MARK_TS_COMMON (UNDERLYING_TYPE);
/* New decls. */
MARK_TS_DECL_COMMON (TEMPLATE_DECL);
MARK_TS_DECL_NON_COMMON (USING_DECL);
/* New Types. */
+ MARK_TS_TYPE_COMMON (UNBOUND_CLASS_TEMPLATE);
+ MARK_TS_TYPE_COMMON (TYPE_ARGUMENT_PACK);
+
+ MARK_TS_TYPE_NON_COMMON (DECLTYPE_TYPE);
+ MARK_TS_TYPE_NON_COMMON (TYPENAME_TYPE);
+ MARK_TS_TYPE_NON_COMMON (TYPEOF_TYPE);
+ MARK_TS_TYPE_NON_COMMON (UNDERLYING_TYPE);
MARK_TS_TYPE_NON_COMMON (BOUND_TEMPLATE_TEMPLATE_PARM);
MARK_TS_TYPE_NON_COMMON (TEMPLATE_TEMPLATE_PARM);
MARK_TS_TYPE_NON_COMMON (TEMPLATE_TYPE_PARM);
- MARK_TS_TYPE_NON_COMMON (TYPE_ARGUMENT_PACK);
MARK_TS_TYPE_NON_COMMON (TYPE_PACK_EXPANSION);
/* Statements. */