]> granicus.if.org Git - clang/commitdiff
Improve diagnostics for dangling '}'.
authorNico Weber <nicolasweber@gmx.de>
Tue, 17 Jan 2012 01:04:27 +0000 (01:04 +0000)
committerNico Weber <nicolasweber@gmx.de>
Tue, 17 Jan 2012 01:04:27 +0000 (01:04 +0000)
Fixes PR6484. Patch from Jason Switzer!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148270 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticParseKinds.td
lib/Parse/Parser.cpp
test/Parser/objc-quirks.m
test/Parser/recovery.c

index e4a9fdc3a4225f43b6501a382a6589b447a9ed19..7675a566ebd8ecc08040210432ea8890361fc734 100644 (file)
@@ -119,6 +119,7 @@ def err_parse_error : Error<"parse error">;
 def err_expected_expression : Error<"expected expression">;
 def err_expected_type : Error<"expected a type">;
 def err_expected_external_declaration : Error<"expected external declaration">;
+def err_extraneous_closing_brace : Error<"extraneous closing brace ('}')">;
 def err_expected_ident : Error<"expected identifier">;
 def err_expected_ident_lparen : Error<"expected identifier or '('">;
 def err_expected_ident_lbrace : Error<"expected identifier or '{'">;
index e09ee79c8cb927b7a433dfccf8f3e7ad0ac12af4..db9460bca4f9e9c13c5e36b1eeb48f395d04b4fb 100644 (file)
@@ -552,7 +552,7 @@ Parser::ParseExternalDeclaration(ParsedAttributesWithRange &attrs,
     // TODO: Invoke action for top-level semicolon.
     return DeclGroupPtrTy();
   case tok::r_brace:
-    Diag(Tok, diag::err_expected_external_declaration);
+    Diag(Tok, diag::err_extraneous_closing_brace);
     ConsumeBrace();
     return DeclGroupPtrTy();
   case tok::eof:
index 72cb1e1d7c994568386ab73de82770d515513a04..0bdeb464e77160733d5631736e62b8259863a038 100644 (file)
@@ -7,7 +7,7 @@ int @"s" = 5;  // expected-error {{prefix attribute must be}}
 // rdar://6480479
 @interface A // expected-note {{class started here}}
 }; // expected-error {{missing '@end'}} \
-// expected-error {{expected external declaration}} \
+// expected-error {{extraneous closing brace ('}')}} \
 // expected-warning{{extra ';' outside of a function}}
 
 
index 15fd12b715b353068b1e00c89523053c2375aecc..3916acfda1e01a8fd4b016764501eb502e6cd8d7 100644 (file)
@@ -16,7 +16,7 @@ static void f (char * (*g) (char **, int), char **p, ...) {
 
 
 // PR3172
-} // expected-error {{expected external declaration}}
+} // expected-error {{extraneous closing brace ('}')}}
 
 
 // rdar://6094870