зеркало из https://github.com/microsoft/clang-1.git
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47768 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
30037538eb
Коммит
da323adbb9
|
@ -1240,7 +1240,7 @@ Parser::DeclTy *Parser::ParseObjCMethodDefinition() {
|
|||
|
||||
// We should have an opening brace now.
|
||||
if (Tok.isNot(tok::l_brace)) {
|
||||
Diag(Tok, diag::err_expected_fn_body);
|
||||
Diag(Tok, diag::err_expected_method_body);
|
||||
|
||||
// Skip over garbage, until we get to '{'. Don't eat the '{'.
|
||||
SkipUntil(tok::l_brace, true, true);
|
||||
|
|
|
@ -807,6 +807,12 @@ Sema::DeclTy *Sema::ActOnMethodDeclaration(
|
|||
ObjCDeclSpec *ArgQT, TypeTy **ArgTypes, IdentifierInfo **ArgNames,
|
||||
AttributeList *AttrList, tok::ObjCKeywordKind MethodDeclKind,
|
||||
bool isVariadic) {
|
||||
|
||||
// Make sure we can establish a context for the method.
|
||||
if (!ClassDecl) {
|
||||
Diag(MethodLoc, diag::error_missing_method_context);
|
||||
return 0;
|
||||
}
|
||||
llvm::SmallVector<ParmVarDecl*, 16> Params;
|
||||
|
||||
for (unsigned i = 0; i < Sel.getNumArgs(); i++) {
|
||||
|
|
|
@ -356,6 +356,8 @@ DIAG(err_function_declared_typedef, ERROR,
|
|||
"function definition declared 'typedef'")
|
||||
DIAG(err_expected_fn_body, ERROR,
|
||||
"expected function body after function declarator")
|
||||
DIAG(err_expected_method_body, ERROR,
|
||||
"expected method body")
|
||||
DIAG(err_expected_after_declarator, ERROR,
|
||||
"expected '=', ',', ';', 'asm', or '__attribute__' after declarator")
|
||||
DIAG(err_expected_statement, ERROR,
|
||||
|
@ -484,6 +486,8 @@ DIAG(err_toomany_element_decls, ERROR,
|
|||
"Only one element declaration is allowed")
|
||||
DIAG(warn_expected_implementation, WARNING,
|
||||
"@end must appear in an @implementation context")
|
||||
DIAG(error_missing_method_context, ERROR,
|
||||
"missing context for method declaration")
|
||||
DIAG(error_bad_receiver_type, ERROR,
|
||||
"bad receiver type '%0'")
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
// RUN: clang %s -verify -fsyntax-only
|
||||
- (void)compilerTestAgainst; // expected-error {{missing context for method declaration}}
|
||||
|
||||
void xx(); // expected-error {{expected method body}}
|
Загрузка…
Ссылка в новой задаче