diff options
author | Mark Mitchell <mark@codesourcery.com> | 2003-06-20 02:40:37 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2003-06-20 02:40:37 +0000 |
commit | f139561cce27d9b662b0a3b22d3dd6aa56ae1854 (patch) | |
tree | f39921e4f96d4b307cb115c1a2e04b29f5a15ee4 /gcc/testsuite/g++.dg | |
parent | 170b020fe4be4eadea27d389257778d952fb5a13 (diff) | |
download | gcc-f139561cce27d9b662b0a3b22d3dd6aa56ae1854.tar.gz |
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
Diffstat (limited to 'gcc/testsuite/g++.dg')
-rw-r--r-- | gcc/testsuite/g++.dg/template/static4.C | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/static4.C b/gcc/testsuite/g++.dg/template/static4.C new file mode 100644 index 00000000000..c5486326cdd --- /dev/null +++ b/gcc/testsuite/g++.dg/template/static4.C @@ -0,0 +1,7 @@ +template <class R> +struct A { + static int _test; // { dg-error "" } + static int _test; // { dg-error "" } +}; +template <class R> int A<R>::_test = 0; +struct B : public A <int> { }; |