From 030cfa22cbaaa97f54b74e0fba19fbe09367b481 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Fri, 2 Jun 2017 13:23:08 +0000 Subject: Remove lang_type_ptrmem. cp/ Remove lang_type_ptrmem. * cp-tree.h (lang_type_header): Remove is_lang_type_class. Move into ... (lang_type_class): ... this. Reorder bitfields. Rename to ... (lang_type): ... this. Delete old definition. (lang_type_ptrmem): Delete. (LANG_TYPE_CLASS_CHECK): Simply get TYPE_LANG_SPECIFIC. Adjust uses. (LANG_TYPE_PTRMEM_CHECK): Delete. (TYPE_GET_PTRMEMFUNC_TYPE, TYPE_SET_PTRMEMFUNC_TYPE): Delete. (TYPE_PTRMEMFUNC_TYPE): New. Use TYPE_LANG_SLOT_1. * decl.c (build_ptrmemfunc_type): Adjust. * lex.c (copy_lang_type): Remove lang_type_ptrmem handling. (maybe_add_lang_type_raw): Don't set u.c.h.is_lang_type_class. objcp/ * objcp-decl.h (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Use lang_type. (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use it. Don't set u.c.h.is_lang_type_class. From-SVN: r248826 --- gcc/cp/lex.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) (limited to 'gcc/cp/lex.c') diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index 5dc9eee..cf7c0d1 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -678,24 +678,19 @@ copy_decl (tree decl MEM_STAT_DECL) static void copy_lang_type (tree node) { - int size; - struct lang_type *lt; - if (! TYPE_LANG_SPECIFIC (node)) return; - if (TYPE_LANG_SPECIFIC (node)->u.h.is_lang_type_class) - size = sizeof (struct lang_type); - else - size = sizeof (struct lang_type_ptrmem); - lt = (struct lang_type *) ggc_internal_alloc (size); - memcpy (lt, TYPE_LANG_SPECIFIC (node), size); + struct lang_type *lt + = (struct lang_type *) ggc_internal_alloc (sizeof (struct lang_type)); + + memcpy (lt, TYPE_LANG_SPECIFIC (node), (sizeof (struct lang_type))); TYPE_LANG_SPECIFIC (node) = lt; if (GATHER_STATISTICS) { tree_node_counts[(int)lang_type] += 1; - tree_node_sizes[(int)lang_type] += size; + tree_node_sizes[(int)lang_type] += sizeof (struct lang_type); } } @@ -720,12 +715,9 @@ maybe_add_lang_type_raw (tree t) || TREE_CODE (t) == BOUND_TEMPLATE_TEMPLATE_PARM); if (add) { - struct lang_type *pi - = (struct lang_type *) ggc_internal_cleared_alloc - (sizeof (struct lang_type)); - - TYPE_LANG_SPECIFIC (t) = pi; - pi->u.c.h.is_lang_type_class = 1; + TYPE_LANG_SPECIFIC (t) + = (struct lang_type *) (ggc_internal_cleared_alloc + (sizeof (struct lang_type))); if (GATHER_STATISTICS) { -- cgit v1.1