From: Douglas Katzman Date: Fri, 11 Nov 2016 16:51:40 +0000 (+0000) Subject: Fix mismatched enum value name and diagnostic text. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2464f11bd83611babf4afcd58ccc1ae85c899599;p=clang Fix mismatched enum value name and diagnostic text. ExpectedFunctionGlobalVarMethodOrProperty would previously say "functions and global variables" instead of "functions, methods, properties, and global variables" The newly added ExpectedFunctionOrGlobalVariable says "functions and global variables" Differential Revision: https://reviews.llvm.org/D26459 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@286599 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/Attr.td b/include/clang/Basic/Attr.td index 173c1749a4..46924959c2 100644 --- a/include/clang/Basic/Attr.td +++ b/include/clang/Basic/Attr.td @@ -382,7 +382,7 @@ def Alias : Attr { let Spellings = [GCC<"alias">]; let Args = [StringArgument<"Aliasee">]; let Subjects = SubjectList<[Function, GlobalVar], ErrorDiag, - "ExpectedFunctionGlobalVarMethodOrProperty">; + "ExpectedFunctionOrGlobalVar">; let Documentation = [Undocumented]; } @@ -1746,7 +1746,7 @@ def NoSanitizeSpecific : InheritableAttr { GCC<"no_sanitize_thread">, GNU<"no_sanitize_memory">]; let Subjects = SubjectList<[Function, GlobalVar], ErrorDiag, - "ExpectedFunctionGlobalVarMethodOrProperty">; + "ExpectedFunctionOrGlobalVar">; let Documentation = [NoSanitizeAddressDocs, NoSanitizeThreadDocs, NoSanitizeMemoryDocs]; let ASTNode = 0; diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td index 4e7b664995..cc08434f5d 100644 --- a/include/clang/Basic/DiagnosticSemaKinds.td +++ b/include/clang/Basic/DiagnosticSemaKinds.td @@ -2599,6 +2599,7 @@ def warn_attribute_wrong_decl_type : Warning< "functions" "|unions" "|variables and functions" + "|functions and global variables" "|functions, variables, and Objective-C interfaces" "|functions and methods" "|parameters" @@ -2629,7 +2630,7 @@ def warn_attribute_wrong_decl_type : Warning< "|functions, variables, classes, and Objective-C interfaces" "|Objective-C protocols" "|variables with static or thread storage duration" - "|functions and global variables" + "|functions, methods, properties, and global variables" "|structs, unions, and typedefs" "|structs and typedefs" "|interface or protocol declarations" diff --git a/include/clang/Sema/AttributeList.h b/include/clang/Sema/AttributeList.h index 96653ef8ea..0c56b3fa34 100644 --- a/include/clang/Sema/AttributeList.h +++ b/include/clang/Sema/AttributeList.h @@ -885,6 +885,7 @@ enum AttributeDeclKind { ExpectedFunction, ExpectedUnion, ExpectedVariableOrFunction, + ExpectedFunctionOrGlobalVar, ExpectedFunctionVariableOrObjCInterface, ExpectedFunctionOrMethod, ExpectedParameter, diff --git a/test/Sema/attr-section.c b/test/Sema/attr-section.c index 812de06718..c64b10d80f 100644 --- a/test/Sema/attr-section.c +++ b/test/Sema/attr-section.c @@ -10,7 +10,7 @@ int y __attribute__((section( // PR6007 void test() { - __attribute__((section("NEAR,x"))) int n1; // expected-error {{'section' attribute only applies to functions and global variables}} + __attribute__((section("NEAR,x"))) int n1; // expected-error {{'section' attribute only applies to functions, methods, properties, and global variables}} __attribute__((section("NEAR,x"))) static int n2; // ok. } @@ -18,4 +18,4 @@ void test() { void __attribute__((section("foo,zed"))) test2(void); // expected-note {{previous attribute is here}} void __attribute__((section("bar,zed"))) test2(void) {} // expected-warning {{section does not match previous declaration}} -enum __attribute__((section("NEAR,x"))) e { one }; // expected-error {{'section' attribute only applies to functions and global variables}} +enum __attribute__((section("NEAR,x"))) e { one }; // expected-error {{'section' attribute only applies to functions, methods, properties, and global variables}}