From d46293049fd1826e4901beb216e8681a1399dbcb Mon Sep 17 00:00:00 2001 From: Nick Lewycky Date: Fri, 1 May 2015 20:47:19 +0000 Subject: [PATCH] Adjust the wording of the "brackets go after the unqualified-id" error message. It applies in cases that aren't unqualified-ids. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@236344 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/DiagnosticParseKinds.td | 3 +- test/Parser/brackets.c | 8 +++--- test/Parser/brackets.cpp | 32 +++++++++++++-------- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/include/clang/Basic/DiagnosticParseKinds.td b/include/clang/Basic/DiagnosticParseKinds.td index d96fbac50d..56cfb0eb5b 100644 --- a/include/clang/Basic/DiagnosticParseKinds.td +++ b/include/clang/Basic/DiagnosticParseKinds.td @@ -477,7 +477,8 @@ def err_invalid_operator_on_type : Error< def err_expected_unqualified_id : Error< "expected %select{identifier|unqualified-id}0">; def err_brackets_go_after_unqualified_id : Error< - "brackets go after the %select{identifier|unqualified-id}0">; + "brackets are not allowed here; to declare an array, " + "place the brackets after the %select{identifier|name}0">; def err_unexpected_unqualified_id : Error<"type-id cannot have a name">; def err_func_def_no_params : Error< "function definition does not declare parameters">; diff --git a/test/Parser/brackets.c b/test/Parser/brackets.c index 2750d0e42e..a1003f399d 100644 --- a/test/Parser/brackets.c +++ b/test/Parser/brackets.c @@ -7,7 +7,7 @@ void test1() { int a[] = {0,1,1,2,3}; int []b = {0,1,4,9,16}; - // expected-error@-1{{brackets go after the identifier}} + // expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the identifier}} // CHECK: {{^}} int []b = {0,1,4,9,16}; // CHECK: {{^}} ~~ ^ // CHECK: {{^}} [] @@ -23,7 +23,7 @@ void test1() { struct S { int [1][1]x; - // expected-error@-1{{brackets go after the identifier}} + // expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the identifier}} // CHECK: {{^}} int [1][1]x; // CHECK: {{^}} ~~~~~~ ^ // CHECK: {{^}} [1][1] @@ -53,7 +53,7 @@ void test3() { // CHECK: {{^}} int [5] *; // CHECK: {{^}} ^ // CHECK-NOT: fix-it - // expected-error@-5{{brackets go after the identifier}} + // expected-error@-5{{brackets are not allowed here; to declare an array, place the brackets after the identifier}} // CHECK: {{^}} int [5] *; // CHECK: {{^}} ~~~~ ^ // CHECK: {{^}} ()[5] @@ -62,7 +62,7 @@ void test3() { // CHECK: fix-it:{{.*}}:{[[@LINE-11]]:12-[[@LINE-11]]:12}:")[5]" int [5] * a; - // expected-error@-1{{brackets go after the identifier}} + // expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the identifier}} // CHECK: {{^}} int [5] * a; // CHECK: {{^}} ~~~~ ^ // CHECK: {{^}} ( )[5] diff --git a/test/Parser/brackets.cpp b/test/Parser/brackets.cpp index f418c11d3a..6963a75ab3 100644 --- a/test/Parser/brackets.cpp +++ b/test/Parser/brackets.cpp @@ -7,7 +7,7 @@ void test1() { int a[] = {0,1,1,2,3}; int []b = {0,1,4,9,16}; - // expected-error@-1{{brackets go after the unqualified-id}} + // expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the name}} // CHECK: {{^}} int []b = {0,1,4,9,16}; // CHECK: {{^}} ~~ ^ // CHECK: {{^}} [] @@ -21,7 +21,7 @@ void test1() { int *f = b; // No undeclared identifer error here. int[1] g[2]; - // expected-error@-1{{brackets go after the unqualified-id}} + // expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the name}} // CHECK: {{^}} int[1] g[2]; // CHECK: {{^}} ~~~ ^ // CHECK: {{^}} [1] @@ -31,7 +31,7 @@ void test1() { void test2() { int [3] (*a) = 0; - // expected-error@-1{{brackets go after the unqualified-id}} + // expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the name}} // CHECK: {{^}} int [3] (*a) = 0; // CHECK: {{^}} ~~~~ ^ // CHECK: {{^}} [3] @@ -47,7 +47,7 @@ void test2() { struct A { static int [1][1]x; - // expected-error@-1{{brackets go after the unqualified-id}} + // expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the name}} // CHECK: {{^}} static int [1][1]x; // CHECK: {{^}} ~~~~~~ ^ // CHECK: {{^}} [1][1] @@ -56,7 +56,7 @@ struct A { }; int [1][1]A::x = { {42} }; -// expected-error@-1{{brackets go after the unqualified-id}} +// expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the name}} // CHECK: {{^}}int [1][1]A::x = { {42} }; // CHECK: {{^}} ~~~~~~ ^ // CHECK: {{^}} [1][1] @@ -65,7 +65,7 @@ int [1][1]A::x = { {42} }; struct B { static int (*x)[5]; }; int [5] *B::x = 0; -// expected-error@-1{{brackets go after the unqualified-id}} +// expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the name}} // CHECK: {{^}}int [5] *B::x = 0; // CHECK: {{^}} ~~~~ ^ // CHECK: {{^}} ( )[5] @@ -75,7 +75,7 @@ int [5] *B::x = 0; void test3() { int [3] *a; - // expected-error@-1{{brackets go after the unqualified-id}} + // expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the name}} // CHECK: {{^}} int [3] *a; // CHECK: {{^}} ~~~~ ^ // CHECK: {{^}} ( )[3] @@ -88,7 +88,7 @@ void test3() { void test4() { int [2] a; - // expected-error@-1{{brackets go after the unqualified-id}} + // expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the name}} // CHECK: {{^}} int [2] a; // CHECK: {{^}} ~~~~ ^ // CHECK: {{^}} [2] @@ -96,7 +96,7 @@ void test4() { // CHECK: fix-it:{{.*}}:{[[@LINE-6]]:12-[[@LINE-6]]:12}:"[2]" int [2] &b = a; - // expected-error@-1{{brackets go after the unqualified-id}} + // expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the name}} // CHECK: {{^}} int [2] &b = a; // CHECK: {{^}} ~~~~ ^ // CHECK: {{^}} ( )[2] @@ -128,7 +128,7 @@ struct A { static int arr[3]; }; int [3] ::test6::A::arr = {1,2,3}; -// expected-error@-1{{brackets go after the unqualified-id}} +// expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the name}} // CHECK: {{^}}int [3] ::test6::A::arr = {1,2,3}; // CHECK: {{^}} ~~~~ ^ // CHECK: {{^}} [3] @@ -141,7 +141,7 @@ namespace test7 { class A{}; void test() { int [3] A::*a; - // expected-error@-1{{brackets go after the unqualified-id}} + // expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the name}} // CHECK: {{^}} int [3] A::*a; // CHECK: {{^}} ~~~~ ^ // CHECK: {{^}} ( )[3] @@ -150,4 +150,12 @@ void test() { // CHECK: fix-it:{{.*}}:{[[@LINE-7]]:16-[[@LINE-7]]:16}:")[3]" } } -// CHECK: 14 errors generated. + +namespace test8 { +struct A { + static const char f[]; +}; +const char[] A::f = "f"; +// expected-error@-1{{brackets are not allowed here; to declare an array, place the brackets after the name}} +} +// CHECK: 15 errors generated. -- 2.40.0