forked from OSchip/llvm-project
Objective-C [qoi]: Provide improved parse diagnostics when
closing rbrace is missing in an ObjC class declaration. Can do beter than this, but it involves addition of overhead which will be present in correct code. // rdar://6854840 llvm-svn: 177435
This commit is contained in:
parent
559754a482
commit
1c5d4c54a9
|
@ -406,6 +406,8 @@ def err_missing_catch_finally : Error<
|
|||
def err_objc_concat_string : Error<"unexpected token after Objective-C string">;
|
||||
def err_expected_objc_container : Error<
|
||||
"'@end' must appear in an Objective-C context">;
|
||||
def err_objc_unexpected_atend : Error<
|
||||
"'@end' appears where closing brace '}' is expected">;
|
||||
def error_property_ivar_decl : Error<
|
||||
"property synthesize requires specification of an ivar">;
|
||||
def err_synthesized_property_name : Error<
|
||||
|
|
|
@ -1288,6 +1288,10 @@ void Parser::ParseObjCClassInstanceVariables(Decl *interfaceDecl,
|
|||
visibility = Tok.getObjCKeywordID();
|
||||
ConsumeToken();
|
||||
continue;
|
||||
case tok::objc_end:
|
||||
Diag(Tok, diag::err_objc_unexpected_atend);
|
||||
ConsumeToken();
|
||||
continue;
|
||||
default:
|
||||
Diag(Tok, diag::err_objc_illegal_visibility_spec);
|
||||
continue;
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
||||
// rdar: //6854840
|
||||
@interface A {@end // expected-error {{'@end' appears where closing brace '}' is expected}}\
|
||||
// expected-note {{to match this '{'}}\
|
||||
// expected-note {{class started here}}
|
||||
// expected-error {{expected '}'}} expected-error {{missing '@end'}}
|
Loading…
Reference in New Issue