when emitting an error about a missing } in a compound statement, emit

a "to match this {" note, pointing out the opener.

llvm-svn: 112709
This commit is contained in:
Chris Lattner 2010-09-01 15:49:26 +00:00
parent 2333b12c8a
commit 0073962025
4 changed files with 11 additions and 7 deletions

View File

@ -519,6 +519,7 @@ StmtResult Parser::ParseCompoundStatementBody(bool isStmtExpr) {
// We broke out of the while loop because we found a '}' or EOF.
if (Tok.isNot(tok::r_brace)) {
Diag(Tok, diag::err_expected_rbrace);
Diag(LBraceLoc, diag::note_matching) << "{";
return StmtError();
}

View File

@ -1,4 +1,5 @@
// RUN: %clang_cc1 -fsyntax-only %s -verify
void a() {goto A; // expected-error {{use of undeclared label}}
void a() { // expected-note {{to match this '{'}}
goto A; // expected-error {{use of undeclared label}}
// expected-error {{expected '}'}}

View File

@ -2,8 +2,9 @@
- (NSDictionary*) _executeScript:(NSString *)source { // expected-error 2 {{expected a type}} \
// expected-error {{missing context for method declaration}}
Exit: [nilArgs release]; // expected-error {{use of undeclared identifier}}
}
- (NSDictionary *) _setupKernelStandardMode:(NSString *)source { // expected-error 2 {{expected a type}} \
expected-error {{missing context for method declaration}}
Exit: if(_ciKernel && !success ) { // expected-error {{use of undeclared identifier}} // expected-error 2 {{expected}}
Exit: [nilArgs release]; // expected-error {{use of undeclared identifier}}
}
- (NSDictionary *) _setupKernelStandardMode:(NSString *)source { // expected-error 2 {{expected a type}} \
expected-error {{missing context for method declaration}} \
expected-note{{to match this '{'}}
Exit: if(_ciKernel && !success ) { // expected-error {{use of undeclared identifier}} // expected-error 2 {{expected}} expected-note{{to match this '{'}}

View File

@ -1,4 +1,5 @@
// RUN: %clang_cc1 -fsyntax-only -verify %s
- im0 { int a; return 0; // expected-error{{missing context for method declaration}}
- im0 { // expected-note{{to match this '{'}} expected-error{{missing context for method declaration}}
int a; return 0;
// expected-error{{expected '}'}}