aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorLee Millward <lee.millward@codesourcery.com>2006-08-27 15:22:05 +0000
committerLee Millward <lmillward@gcc.gnu.org>2006-08-27 15:22:05 +0000
commitbf87e098aefb413abaa78ec5e0d37dc7366c2c86 (patch)
tree8079c25e8fb391d151cee0b5b49eb214449711dd /gcc
parent0370f61a541ef2c41fafb788facd2b1de67c317c (diff)
downloadgcc-bf87e098aefb413abaa78ec5e0d37dc7366c2c86.zip
gcc-bf87e098aefb413abaa78ec5e0d37dc7366c2c86.tar.gz
gcc-bf87e098aefb413abaa78ec5e0d37dc7366c2c86.tar.bz2
re PR c++/26573 (Duplicate message for static member in local class)
PR c++/26573 * class.c (check_field_decls): Don't issue error about local classes containing static data members. * g++.dg/other/static2.C: New test. From-SVN: r116490
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/class.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/other/static2.C12
4 files changed, 23 insertions, 4 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 5c8b1cb..dd1df56 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2006-08-27 Lee Millward <lee.millward@codesourcery.com>
+
+ PR c++/26573
+ * class.c (check_field_decls): Don't issue error about
+ local classes containing static data members.
+
2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
PR c++/24009
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 673b07f..18996a0 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -2856,10 +2856,6 @@ check_field_decls (tree t, tree *access_decls,
}
}
- /* ``A local class cannot have static data members.'' ARM 9.4 */
- if (current_function_decl && TREE_STATIC (x))
- error ("field %q+D in local class cannot be static", x);
-
/* Perform error checking that did not get done in
grokdeclarator. */
if (TREE_CODE (type) == FUNCTION_TYPE)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c6a3dc3..c6d6457 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-08-27 Lee Millward <lee.millward@codesourcery.com>
+
+ PR c++/26573
+ * g++.dg/other/static2.C: New test.
+
2006-08-26 Roger Sayle <roger@eyesopen.com>
* gcc.dg/Wswitch-enum-2.c: New test case.
diff --git a/gcc/testsuite/g++.dg/other/static2.C b/gcc/testsuite/g++.dg/other/static2.C
new file mode 100644
index 0000000..ff1478c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/static2.C
@@ -0,0 +1,12 @@
+//PR c++/26573
+
+void foo()
+{
+ struct A { static int i; }; // { dg-error "shall not have" }
+}
+
+template<typename T>
+void bar()
+{
+ struct B { static int j; }; // { dg-error "shall not have" }
+}