aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/lex.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@gcc.gnu.org>2017-06-02 13:23:08 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2017-06-02 13:23:08 +0000
commit030cfa22cbaaa97f54b74e0fba19fbe09367b481 (patch)
treeb860dbc9fa66af625ee6f7a4ef8cef3e9b0557fd /gcc/cp/lex.c
parent9186a9d353815352d9625fc765dd0449fb64d8a9 (diff)
downloadgcc-030cfa22cbaaa97f54b74e0fba19fbe09367b481.zip
gcc-030cfa22cbaaa97f54b74e0fba19fbe09367b481.tar.gz
gcc-030cfa22cbaaa97f54b74e0fba19fbe09367b481.tar.bz2
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
Diffstat (limited to 'gcc/cp/lex.c')
-rw-r--r--gcc/cp/lex.c24
1 files changed, 8 insertions, 16 deletions
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)
{