diff options
author | Nathan Sidwell <nathan@gcc.gnu.org> | 2017-06-02 13:23:08 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2017-06-02 13:23:08 +0000 |
commit | 030cfa22cbaaa97f54b74e0fba19fbe09367b481 (patch) | |
tree | b860dbc9fa66af625ee6f7a4ef8cef3e9b0557fd /gcc/cp/lex.c | |
parent | 9186a9d353815352d9625fc765dd0449fb64d8a9 (diff) | |
download | gcc-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.c | 24 |
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) { |