diff options
author | Lee Millward <lee.millward@codesourcery.com> | 2006-08-27 15:22:05 +0000 |
---|---|---|
committer | Lee Millward <lmillward@gcc.gnu.org> | 2006-08-27 15:22:05 +0000 |
commit | bf87e098aefb413abaa78ec5e0d37dc7366c2c86 (patch) | |
tree | 8079c25e8fb391d151cee0b5b49eb214449711dd | |
parent | 0370f61a541ef2c41fafb788facd2b1de67c317c (diff) | |
download | gcc-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
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/class.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/other/static2.C | 12 |
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" } +} |