when emitting an error about a missing } in a compound statement, emit
a "to match this {" note, pointing out the opener.

llvm-svn: 112709
diff --git a/clang/lib/Parse/ParseStmt.cpp b/clang/lib/Parse/ParseStmt.cpp
index af92728..6c240e6 100644
--- a/clang/lib/Parse/ParseStmt.cpp
+++ b/clang/lib/Parse/ParseStmt.cpp
@@ -519,6 +519,7 @@
   // 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();
   }
 
diff --git a/clang/test/Sema/recover-goto.c b/clang/test/Sema/recover-goto.c
index 0d665f9..0e8f6d3 100644
--- a/clang/test/Sema/recover-goto.c
+++ b/clang/test/Sema/recover-goto.c
@@ -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 '}'}}
diff --git a/clang/test/SemaObjC/crash-label.m b/clang/test/SemaObjC/crash-label.m
index d0a5ae4..ffcb463 100644
--- a/clang/test/SemaObjC/crash-label.m
+++ b/clang/test/SemaObjC/crash-label.m
@@ -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 '{'}}
diff --git a/clang/test/SemaObjC/method-no-context.m b/clang/test/SemaObjC/method-no-context.m
index c88205d..3c45bee 100644
--- a/clang/test/SemaObjC/method-no-context.m
+++ b/clang/test/SemaObjC/method-no-context.m
@@ -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 '}'}}