diff options
| -rw-r--r-- | gcc/cp/ChangeLog | 12 | ||||
| -rw-r--r-- | gcc/cp/parser.c | 2 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 9 | ||||
| -rw-r--r-- | gcc/testsuite/obj-c++.dg/method-namespace-1.mm | 29 |
4 files changed, 51 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ac07e63..7e6bdda 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,6 +1,16 @@ +2010-10-07 Nicola Pero <nicola@nicola.brainstorm.co.uk> + + Merge from apple/trunk branch on FSF servers. + + 2006-04-26 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4508851 + * parser.c (cp_parser_objc_interstitial_code): Recognize + and parse RID_NAMESPACE keyword. + 2010-10-07 Iain Sandoe <iains@gcc.gnu.org> - parser.c (cp_parser_objc_method_tail_params_opt): Peek new token after + * parser.c (cp_parser_objc_method_tail_params_opt): Peek new token after finding ellipsis, before checking for attributes. 2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com> diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 6c842df..f5fa793 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -21635,6 +21635,8 @@ cp_parser_objc_interstitial_code (cp_parser* parser) cp_lexer_consume_token (parser->lexer); objc_set_method_opt (false); } + else if (token->keyword == RID_NAMESPACE) + cp_parser_namespace_definition (parser); /* Other stray characters must generate errors. */ else if (token->type == CPP_OPEN_BRACE || token->type == CPP_CLOSE_BRACE) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 12be369..c8f841e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com> + + Merge from 'apple/trunk' branch on FSF servers. + + 2006-04-26 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4508851 + * obj-c++.dg/method-namespace-1.mm: New. + 2010-10-07 Martin Jambor <mjambor@suse.cz> * gcc.dg/tree-ssa/sra-11.c: New test. diff --git a/gcc/testsuite/obj-c++.dg/method-namespace-1.mm b/gcc/testsuite/obj-c++.dg/method-namespace-1.mm new file mode 100644 index 0000000..6095f57 --- /dev/null +++ b/gcc/testsuite/obj-c++.dg/method-namespace-1.mm @@ -0,0 +1,29 @@ +/* Test for usage of namespace inside @implementation. */ +/* { dg-do compile } */ +@interface MyDocument +@end + +@implementation MyDocument + +// This deprecated usage works +static void foo1() { } + +// This preferred usage does _not_ work +namespace + { + void foo2() { } + } + +namespace STD + { + void foo3 () {} + } + +using namespace STD; + +- (void) GARF { + foo2(); + foo3(); +} + +@end |
