From: Fariborz Jahanian Date: Tue, 11 Dec 2007 18:34:51 +0000 (+0000) Subject: Fixed a parsing bug whereby @optional/@required keyword is not followed by X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f366b4c84485b646c30d6891a249ad6f65abef7c;p=clang Fixed a parsing bug whereby @optional/@required keyword is not followed by a method declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44870 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/Parse/ParseObjc.cpp b/Parse/ParseObjc.cpp index 88be2dc5fb..05cbabd67c 100644 --- a/Parse/ParseObjc.cpp +++ b/Parse/ParseObjc.cpp @@ -264,6 +264,9 @@ void Parser::ParseObjCInterfaceDeclList(DeclTy *interfaceDecl, ExpectAndConsume(tok::semi, diag::err_expected_semi_after,"method proto"); continue; } + else if (Tok.is(tok::at)) + continue; + if (Tok.is(tok::semi)) ConsumeToken(); else if (Tok.is(tok::eof)) diff --git a/test/Parser/enhanced-proto-1.m b/test/Parser/enhanced-proto-1.m new file mode 100644 index 0000000000..354502e791 --- /dev/null +++ b/test/Parser/enhanced-proto-1.m @@ -0,0 +1,17 @@ +// RUN: clang -fsyntax-only -verify %s + +@protocol MyProto1 +@optional +- (void) FOO; +@optional +- (void) FOO; +@required +- (void) REQ; +@optional +@end + +@protocol MyProto2 +- (void) FOO2; +@optional +- (void) FOO3; +@end