fix cut & paste error in cp/parser and add testscases in case of fture error.

gcc/cp:

	parser.c (cp_parser_objc_method_tail_params_opt): Peek new token after
	finding ellipsis, before checking for attributes.

testsuite:

	* objc.dg/attributes/method-attribute-3.m: New.
	* obj-c++.dg/attributes/method-attribute-3.mm: New.

From-SVN: r165109
This commit is contained in:
Iain Sandoe 2010-10-07 13:51:38 +00:00
parent feab35499e
commit 4e4edb3b3a
5 changed files with 59 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2010-10-07 Iain Sandoe <iains@gcc.gnu.org>
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>
Merge from apple/trunk branch on FSF servers.

View file

@ -21568,6 +21568,7 @@ cp_parser_objc_method_tail_params_opt (cp_parser* parser, bool *ellipsisp,
{
cp_lexer_consume_token (parser->lexer); /* Eat '...'. */
*ellipsisp = true;
token = cp_lexer_peek_token (parser->lexer);
break;
}

View file

@ -1,3 +1,8 @@
2010-10-07 Iain Sandoe <iains@gcc.gnu.org>
* objc.dg/attributes/method-attribute-3.m: New.
* obj-c++.dg/attributes/method-attribute-3.mm: New.
2010-10-07 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/45916

View file

@ -0,0 +1,24 @@
/* { dg-do compile } */
#include "../../objc-obj-c++-shared/Object1.h"
@interface obj : Object {
@public
int var;
}
- (int) vargsn: (int) count, ... __attribute__((deprecated)); /* { dg-warning " method attributes are not available in this version of the compiler" } */
@end
@implementation obj
- (int) vargsn: (int) count, ...
{
return 0;
}
@end
int foo (void)
{
obj *p = [obj new];
return [p vargsn:0];
}

View file

@ -0,0 +1,24 @@
/* { dg-do compile } */
#include "../../objc-obj-c++-shared/Object1.h"
@interface obj : Object {
@public
int var;
}
- (int) vargsn: (int) count, ... __attribute__((deprecated)); /* { dg-warning " method attributes are not available in this version of the compiler" } */
@end
@implementation obj
- (int) vargsn: (int) count, ...
{
return 0;
}
@end
int foo (void)
{
obj *p = [obj new];
return [p vargsn:0];
}