aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/cp-tree.def
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2002-10-02 20:01:38 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2002-10-02 20:01:38 +0000
commit2282d28d488248a113c9f172f8f0f0bca73419c7 (patch)
tree245a8ba4ee36bea837735b3570838103f4f7e63f /gcc/cp/cp-tree.def
parent854ef3909dcc16b363d5300d096823fa4c6afdc5 (diff)
downloadgcc-2282d28d488248a113c9f172f8f0f0bca73419c7.zip
gcc-2282d28d488248a113c9f172f8f0f0bca73419c7.tar.gz
gcc-2282d28d488248a113c9f172f8f0f0bca73419c7.tar.bz2
re PR c++/7188 (Segfault with template class and recursive (incorrect) initalizer list.)
PR c++/7188. * cp-tree.def (CTOR_INITIALIZER): Use one slot, not two. * cp-tree.h (emit_base_init): Rename to .... (emit_mem_initializers): ... this. (expand_member_init): Change prototype. * init.c (perform_member_init): Compute explicit, rather than requiring it as a parameter. (sort_member_init): Rename to ... (sort_mem_initializers): ... this. Process bases and data members together. (sort_base_init): Remove. (emit_base_init): Rename to ... (emit_mem_initializers): ... this. (expand_aggr_vbase_init_1): Remove. (construct_virtual_bases): Rename to ... (construct_virtual_base): ... this. (expand_member_init): Rework handling of base initializers. * method.c (do_build_copy_constructor): Use finish_mem_initializers. * parse.y (member_init): Adjust calls to expand_member_init. * pt.c (tsubst_expr): Simplify CTOR_INITIALIZER case. (tsubst_initializer_list): Use expand_member_init. * semantics.c (finish_mem_intiailizers): Simplify. PR c++/7188. * g++.dg/template/meminit1.C: New test. * g++.dg/warn/Wreorder-1.C: Likewise. * g++.old-deja/g++.mike/warn3.C: Tweak. * lib/prune.exp: Ingore "in copy constructor". From-SVN: r57748
Diffstat (limited to 'gcc/cp/cp-tree.def')
-rw-r--r--gcc/cp/cp-tree.def2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cp/cp-tree.def b/gcc/cp/cp-tree.def
index 90685af..1aae797 100644
--- a/gcc/cp/cp-tree.def
+++ b/gcc/cp/cp-tree.def
@@ -251,7 +251,7 @@ DEFTREECODE (PSEUDO_DTOR_EXPR, "pseudo_dtor_expr", 'e', 3)
/* CTOR_INITIALIZER is a placeholder in template code for a call to
setup_vtbl_pointer (and appears in all functions, not just ctors). */
-DEFTREECODE (CTOR_INITIALIZER, "ctor_initializer", 'e', 2)
+DEFTREECODE (CTOR_INITIALIZER, "ctor_initializer", 'e', 1)
DEFTREECODE (RETURN_INIT, "return_init", 'e', 2)
DEFTREECODE (TRY_BLOCK, "try_block", 'e', 2)
DEFTREECODE (EH_SPEC_BLOCK, "eh_spec_block", 'e', 2)