]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/cp/pt.c
re PR c++/7188 (Segfault with template class and recursive (incorrect) initalizer...
authorMark Mitchell <mark@codesourcery.com>
Wed, 2 Oct 2002 20:01:38 +0000 (20:01 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Wed, 2 Oct 2002 20:01:38 +0000 (20:01 +0000)
commit2282d28d488248a113c9f172f8f0f0bca73419c7
tree245a8ba4ee36bea837735b3570838103f4f7e63f
parent854ef3909dcc16b363d5300d096823fa4c6afdc5
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
13 files changed:
gcc/cp/ChangeLog
gcc/cp/cp-tree.def
gcc/cp/cp-tree.h
gcc/cp/init.c
gcc/cp/method.c
gcc/cp/parse.y
gcc/cp/pt.c
gcc/cp/semantics.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/meminit1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/warn/Wreorder-1.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.mike/warn3.C
gcc/testsuite/lib/prune.exp