re PR c++/9649 (ICE in finish_member_declaration at cp/semantics.c:1850 when redeclar...
authorMark Mitchell <mark@codesourcery.com>
Fri, 20 Jun 2003 02:40:37 +0000 (02:40 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Fri, 20 Jun 2003 02:40:37 +0000 (02:40 +0000)
commitf139561cce27d9b662b0a3b22d3dd6aa56ae1854
treef39921e4f96d4b307cb115c1a2e04b29f5a15ee4
parent170b020fe4be4eadea27d389257778d952fb5a13
re PR c++/9649 (ICE in finish_member_declaration at cp/semantics.c:1850 when redeclaring a static member variable)

PR c++/9649
* cp-tree.h (pushdecl_class_level): Change prototype.
(push_class_level_binding): Likewise.
* decl.c (add_binding): Reject duplicate static data members.
(pushdecl_class_level): Return a value indicating whether or not
the binding was valid.
(push_class_level_binding): Likewise.
* semantics.c (finish_member_declaration): Don't keep invalid
declarations.

PR c++/9649
* g++.dg/template/static4.C: New test.
* g++.old-deja/g++.other/anon7.C: Remove spurious error messages.

From-SVN: r68240
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/semantics.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/static4.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.other/anon7.C