diff options
author | Nicola Pero <nicola@gcc.gnu.org> | 2011-05-24 21:29:35 +0000 |
---|---|---|
committer | Nicola Pero <nicola@gcc.gnu.org> | 2011-05-24 21:29:35 +0000 |
commit | 4e26ba9022c2052fee9511a0f9d343da5645029f (patch) | |
tree | 45a2ea1e54c55ccbf8843a2f531a8fac8f843c25 /gcc/testsuite | |
parent | 936fd13c5b33cd6748788802ec3bb3445a396228 (diff) | |
download | gcc-4e26ba9022c2052fee9511a0f9d343da5645029f.zip gcc-4e26ba9022c2052fee9511a0f9d343da5645029f.tar.gz gcc-4e26ba9022c2052fee9511a0f9d343da5645029f.tar.bz2 |
In gcc/: 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/:
2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/48187
* c-parser.c (c_parser_objc_class_instance_variables): More robust
parsing of syntax error in ObjC instance variable lists. In
particular, avoid an infinite loop if there is a stray ']'.
Updated error message.
In gcc/cp/:
2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>,
* parser.c (cp_parser_objc_class_ivars): Deal gracefully with a
syntax error in declaring an ObjC instance variable.
In gcc/testsuite/:
2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/48187
* objc.dg/pr48187.m: New testcase.
* obj-c++.dg/pr48187.mm: New testcase.
* objc.dg/ivar-extra-semicolon.m: New testcase.
From-SVN: r174142
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/obj-c++.dg/pr48187.mm | 39 | ||||
-rw-r--r-- | gcc/testsuite/objc.dg/ivar-extra-semicolon.m | 15 | ||||
-rw-r--r-- | gcc/testsuite/objc.dg/pr48187.m | 39 |
4 files changed, 100 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 95ee33e..bf257e0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com> + + PR objc/48187 + * objc.dg/pr48187.m: New testcase. + * obj-c++.dg/pr48187.mm: New testcase. + * objc.dg/ivar-extra-semicolon.m: New testcase. + 2011-05-24 Jason Merrill <jason@redhat.com> * g++.dg/template/access21.C: New. diff --git a/gcc/testsuite/obj-c++.dg/pr48187.mm b/gcc/testsuite/obj-c++.dg/pr48187.mm new file mode 100644 index 0000000..750710b --- /dev/null +++ b/gcc/testsuite/obj-c++.dg/pr48187.mm @@ -0,0 +1,39 @@ +/* { dg-do compile } */ + +@interface A +{ + ] /* { dg-error "xpected" } */ +} +@end + +@interface B +{ + ]; /* { dg-error "xpected" } */ +} +@end + +@interface C +{ + ]; /* { dg-error "xpected" } */ + int x; +} +@end + +@interface D +{ + ( +} /* { dg-error "xpected" } */ +@end + +@interface E +{ + (; /* { dg-error "xpected" } */ +} +@end + +@interface F +{ + (; /* { dg-error "xpected" } */ + int x; +} +@end diff --git a/gcc/testsuite/objc.dg/ivar-extra-semicolon.m b/gcc/testsuite/objc.dg/ivar-extra-semicolon.m new file mode 100644 index 0000000..d3f0b54 --- /dev/null +++ b/gcc/testsuite/objc.dg/ivar-extra-semicolon.m @@ -0,0 +1,15 @@ +/* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, May 2011. */ +/* { dg-do compile } */ +/* { dg-options "-pedantic" } */ + +#include <objc/objc.h> + +@interface MyClass +{ + ; /* { dg-warning "extra semicolon" } */ + int a; + ; /* { dg-warning "extra semicolon" } */ + int b; + ; /* { dg-warning "extra semicolon" } */ +} +@end diff --git a/gcc/testsuite/objc.dg/pr48187.m b/gcc/testsuite/objc.dg/pr48187.m new file mode 100644 index 0000000..cd7910d --- /dev/null +++ b/gcc/testsuite/objc.dg/pr48187.m @@ -0,0 +1,39 @@ +/* { dg-do compile } */ + +@interface A +{ + ] /* { dg-error "xpected" } */ +} +@end + +@interface B +{ + ]; /* { dg-error "xpected" } */ +} +@end + +@interface C +{ + ]; /* { dg-error "xpected" } */ + int x; +} +@end + +@interface D +{ + ) /* { dg-error "xpected" } */ +} +@end + +@interface E +{ + ); /* { dg-error "xpected" } */ +} +@end + +@interface F +{ + ); /* { dg-error "xpected" } */ + int x; +} +@end |