aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIain Sandoe <iains@gcc.gnu.org>2010-10-07 13:51:38 +0000
committerIain Sandoe <iains@gcc.gnu.org>2010-10-07 13:51:38 +0000
commit4e4edb3b3aa4199e55e6bfaf8be251ce6247a7ad (patch)
tree856574fa60c14d66ccaff8e8035e604b9c45b683
parentfeab35499e52bc398fd267a48e76f14b579d89b1 (diff)
downloadgcc-4e4edb3b3aa4199e55e6bfaf8be251ce6247a7ad.zip
gcc-4e4edb3b3aa4199e55e6bfaf8be251ce6247a7ad.tar.gz
gcc-4e4edb3b3aa4199e55e6bfaf8be251ce6247a7ad.tar.bz2
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
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/parser.c1
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/obj-c++.dg/attributes/method-attribute-3.mm24
-rw-r--r--gcc/testsuite/objc.dg/attributes/method-attribute-3.m24
5 files changed, 59 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 6219f04..ac07e63 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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.
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 7e25157..6c842df 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -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;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bedc124..a07e2e4d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
diff --git a/gcc/testsuite/obj-c++.dg/attributes/method-attribute-3.mm b/gcc/testsuite/obj-c++.dg/attributes/method-attribute-3.mm
new file mode 100644
index 0000000..05b9884
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/attributes/method-attribute-3.mm
@@ -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];
+}
diff --git a/gcc/testsuite/objc.dg/attributes/method-attribute-3.m b/gcc/testsuite/objc.dg/attributes/method-attribute-3.m
new file mode 100644
index 0000000..05b9884
--- /dev/null
+++ b/gcc/testsuite/objc.dg/attributes/method-attribute-3.m
@@ -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];
+}