Better parser recovery when method is

errornously defined inside an objc class. 
// rdar://7029784

llvm-svn: 126269
This commit is contained in:
Fariborz Jahanian 2011-02-23 00:11:21 +00:00
parent e97a53a446
commit 82ff1e52df
2 changed files with 29 additions and 0 deletions

View File

@ -296,6 +296,10 @@ bool Parser::SkipUntil(const tok::TokenKind *Toks, unsigned NumToks,
case tok::wide_string_literal:
ConsumeStringToken();
break;
case tok::at:
return false;
case tok::semi:
if (StopAtSemi)
return false;

View File

@ -0,0 +1,25 @@
// RUN: %clang_cc1 -fsyntax-only -verify %s
// rdar://7029784
@interface A
-(id) f0 { // expected-error {{expected ';' after method prototype}}
assert(0);
}
@end
@interface B
-(id) f0 { // expected-error {{expected ';' after method prototype}}
assert(0);
@end
@interface C
- (id) f0 { // expected-error {{expected ';' after method prototype}}
assert(0);
};
@end
@interface D
- (id) f0 { // expected-error {{expected ';' after method prototype}}
assert(0);
@property int P;
@end