* lex.c (cxx_make_type): Add MEM_STAT_DECL.
(make_class_type): Likewise.
(cxx_make_type_hook): New.
* cp-objcp-common.h (LANG_HOOKS_MAKE_TYPE): Use cxx_make_type_hook.
From-SVN: r261859
+2018-06-21 Jason Merrill <jason@redhat.com>
+
+ Let -fmem-report see callers of cxx_make_type.
+ * lex.c (cxx_make_type): Add MEM_STAT_DECL.
+ (make_class_type): Likewise.
+ (cxx_make_type_hook): New.
+ * cp-objcp-common.h (LANG_HOOKS_MAKE_TYPE): Use cxx_make_type_hook.
+
2018-06-20 Nathan Sidwell <nathan@acm.org>
PR c++/85634
extern tree cp_get_global_decls ();
extern tree cp_pushdecl (tree);
extern void cp_register_dumps (gcc::dump_manager *);
+extern tree cxx_make_type_hook (tree_code);
/* Lang hooks that are shared between C++ and ObjC++ are defined here. Hooks
specific to C++ or ObjC++ go in cp/cp-lang.c and objcp/objcp-lang.c,
#define LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN cp_type_quals
#undef LANG_HOOKS_MAKE_TYPE
-#define LANG_HOOKS_MAKE_TYPE cxx_make_type
+#define LANG_HOOKS_MAKE_TYPE cxx_make_type_hook
#undef LANG_HOOKS_TYPE_FOR_MODE
#define LANG_HOOKS_TYPE_FOR_MODE c_common_type_for_mode
#undef LANG_HOOKS_TYPE_FOR_SIZE
extern void fit_decomposition_lang_decl (tree, tree);
extern tree copy_decl (tree CXX_MEM_STAT_INFO);
extern tree copy_type (tree CXX_MEM_STAT_INFO);
-extern tree cxx_make_type (enum tree_code);
-extern tree make_class_type (enum tree_code);
+extern tree cxx_make_type (enum tree_code CXX_MEM_STAT_INFO);
+extern tree make_class_type (enum tree_code CXX_MEM_STAT_INFO);
extern const char *get_identifier_kind_name (tree);
extern void set_identifier_kind (tree, cp_identifier_kind);
extern bool cxx_init (void);
}
tree
-cxx_make_type (enum tree_code code)
+cxx_make_type (enum tree_code code MEM_STAT_DECL)
{
- tree t = make_node (code);
+ tree t = make_node (code PASS_MEM_STAT);
if (maybe_add_lang_type_raw (t))
{
return t;
}
+/* A wrapper without the memory stats for LANG_HOOKS_MAKE_TYPE. */
+
+tree
+cxx_make_type_hook (enum tree_code code)
+{
+ return cxx_make_type (code);
+}
+
tree
-make_class_type (enum tree_code code)
+make_class_type (enum tree_code code MEM_STAT_DECL)
{
- tree t = cxx_make_type (code);
+ tree t = cxx_make_type (code PASS_MEM_STAT);
SET_CLASS_TYPE_P (t, 1);
return t;
}