diff options
-rw-r--r-- | lib/Parse/ParseObjc.cpp | 6 | ||||
-rw-r--r-- | test/SemaObjC/pedantic-dynamic-test.m | 16 |
2 files changed, 21 insertions, 1 deletions
diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp index 6a20a089f7..3a0431ffee 100644 --- a/lib/Parse/ParseObjc.cpp +++ b/lib/Parse/ParseObjc.cpp @@ -1426,8 +1426,12 @@ Parser::DeclPtrTy Parser::ParseObjCPropertyDynamic(SourceLocation atLoc) { break; ConsumeToken(); // consume ',' } - if (Tok.isNot(tok::semi)) + if (Tok.isNot(tok::semi)) { Diag(Tok, diag::err_expected_semi_after) << "@dynamic"; + SkipUntil(tok::semi); + } + else + ConsumeToken(); // consume ';' return DeclPtrTy(); } diff --git a/test/SemaObjC/pedantic-dynamic-test.m b/test/SemaObjC/pedantic-dynamic-test.m new file mode 100644 index 0000000000..9b14c1d75f --- /dev/null +++ b/test/SemaObjC/pedantic-dynamic-test.m @@ -0,0 +1,16 @@ +// RUN: %clang_cc1 -fsyntax-only -verify -pedantic %s +// rdar: // 7860960 + +@interface I +{ + int window; +} +@property int window, noWarningNeeded; +@end + +@implementation I + +@synthesize window; + +@dynamic noWarningNeeded; +@end |