summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2003-06-20 02:40:37 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2003-06-20 02:40:37 +0000
commitf139561cce27d9b662b0a3b22d3dd6aa56ae1854 (patch)
treef39921e4f96d4b307cb115c1a2e04b29f5a15ee4 /gcc/testsuite/g++.dg
parent170b020fe4be4eadea27d389257778d952fb5a13 (diff)
downloadgcc-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.C7
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> { };