[clang-tools-extra] [clang-tidy] Fix Hungarian Prefix in readability-identifier-naming (PR #84236)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 6 13:01:17 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-tidy
Author: Piotr Zegar (PiotrZSL)
<details>
<summary>Changes</summary>
Fix handling of Hungarian Prefix when configured to LowerCase.
Warnings no longer will be emited for names that already match
this style.
Fixes: #<!-- -->80268
---
Patch is 43.70 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/84236.diff
5 Files Affected:
- (modified) clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp (+8-2)
- (modified) clang-tools-extra/docs/ReleaseNotes.rst (+2-1)
- (modified) clang-tools-extra/docs/clang-tidy/checks/readability/identifier-naming.rst (+18-10)
- (added) clang-tools-extra/test/clang-tidy/checkers/readability/Inputs/identifier-naming/hungarian-notation3/.clang-tidy (+60)
- (added) clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-hungarian-notation-lower-case-prefix.cpp (+678)
``````````diff
diff --git a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
index 335c3de25b861b..dc30531ebda0e9 100644
--- a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
@@ -888,8 +888,14 @@ bool IdentifierNamingCheck::matchesStyle(
return false;
if (IdentifierNamingCheck::HungarianPrefixType::HPT_Off != Style.HPType) {
std::string HNPrefix = HungarianNotation.getPrefix(Decl, HNOption);
- if (!Name.consume_front(HNPrefix))
- return false;
+ if (!HNPrefix.empty()) {
+ if (!Name.consume_front(HNPrefix))
+ return false;
+ if (Style.HPType ==
+ IdentifierNamingCheck::HungarianPrefixType::HPT_LowerCase &&
+ !Name.consume_front("_"))
+ return false;
+ }
}
// Ensure the name doesn't have any extra underscores beyond those specified
diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst
index 1b839a35c3ed65..8205d0a79fc5bd 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -229,7 +229,8 @@ Changes in existing checks
- Improved :doc:`readability-identifier-naming
<clang-tidy/checks/readability/identifier-naming>` check in `GetConfigPerFile`
- mode by resolving symbolic links to header files.
+ mode by resolving symbolic links to header files. Fixed handling of Hungarian
+ Prefix when configured to `LowerCase`.
Removed checks
^^^^^^^^^^^^^^
diff --git a/clang-tools-extra/docs/clang-tidy/checks/readability/identifier-naming.rst b/clang-tools-extra/docs/clang-tidy/checks/readability/identifier-naming.rst
index 2affb55cfa9ad7..8a54687a25704c 100644
--- a/clang-tools-extra/docs/clang-tidy/checks/readability/identifier-naming.rst
+++ b/clang-tools-extra/docs/clang-tidy/checks/readability/identifier-naming.rst
@@ -11,14 +11,14 @@ another if a mismatch is detected
Casing types include:
- - ``lower_case``,
- - ``UPPER_CASE``,
- - ``camelBack``,
- - ``CamelCase``,
- - ``camel_Snake_Back``,
- - ``Camel_Snake_Case``,
- - ``aNy_CasE``,
- - ``Leading_upper_snake_case``.
+ - ``lower_case``
+ - ``UPPER_CASE``
+ - ``camelBack``
+ - ``CamelCase``
+ - ``camel_Snake_Back``
+ - ``Camel_Snake_Case``
+ - ``aNy_CasE``
+ - ``Leading_upper_snake_case``
It also supports a fixed prefix and suffix that will be prepended or appended
to the identifiers, regardless of the casing.
@@ -32,8 +32,16 @@ but not where they are overridden, as it can't be fixed locally there.
This also applies for pseudo-override patterns like CRTP.
``Leading_upper_snake_case`` is a naming convention where the first word is capitalized
-followed by lower case word(s) seperated by underscore(s) '_'. Examples include:
-Cap_snake_case, Cobra_case, Foo_bar_baz, and Master_copy_8gb.
+followed by lower case word(s) separated by underscore(s) '_'. Examples include:
+`Cap_snake_case`, `Cobra_case`, `Foo_bar_baz`, and `Master_copy_8gb`.
+
+Hungarian notation can be customized using different *HungarianPrefix* settings.
+The options and their corresponding values are:
+
+ - ``Off`` - the default setting
+ - ``On`` - example: ``int iVariable``
+ - ``LowerCase`` - example: ``int i_Variable``
+ - ``CamelCase`` - example: ``int IVariable``
Options
-------
diff --git a/clang-tools-extra/test/clang-tidy/checkers/readability/Inputs/identifier-naming/hungarian-notation3/.clang-tidy b/clang-tools-extra/test/clang-tidy/checkers/readability/Inputs/identifier-naming/hungarian-notation3/.clang-tidy
new file mode 100644
index 00000000000000..45b4cd46c249c0
--- /dev/null
+++ b/clang-tools-extra/test/clang-tidy/checkers/readability/Inputs/identifier-naming/hungarian-notation3/.clang-tidy
@@ -0,0 +1,60 @@
+Checks: readability-identifier-naming
+CheckOptions:
+ readability-identifier-naming.AbstractClassCase: CamelCase
+ readability-identifier-naming.StructCase: CamelCase
+ readability-identifier-naming.UnionCase: camelBack
+ readability-identifier-naming.ClassCase: CamelCase
+ readability-identifier-naming.ClassConstantCase: CamelCase
+ readability-identifier-naming.ClassMemberCase: CamelCase
+ readability-identifier-naming.ConstantCase: CamelCase
+ readability-identifier-naming.ConstantMemberCase: CamelCase
+ readability-identifier-naming.ConstantParameterCase: CamelCase
+ readability-identifier-naming.ConstantPointerParameterCase: CamelCase
+ readability-identifier-naming.ConstexprVariableCase: CamelCase
+ readability-identifier-naming.EnumConstantCase: CamelCase
+ readability-identifier-naming.GlobalConstantCase: CamelCase
+ readability-identifier-naming.GlobalConstantPointerCase: CamelCase
+ readability-identifier-naming.GlobalPointerCase: CamelCase
+ readability-identifier-naming.GlobalVariableCase: CamelCase
+ readability-identifier-naming.LocalConstantCase: CamelCase
+ readability-identifier-naming.LocalConstantPointerCase: CamelCase
+ readability-identifier-naming.LocalPointerCase: CamelCase
+ readability-identifier-naming.LocalVariableCase: CamelCase
+ readability-identifier-naming.MemberCase: CamelCase
+ readability-identifier-naming.ParameterCase: CamelCase
+ readability-identifier-naming.PointerParameterCase: CamelCase
+ readability-identifier-naming.PrivateMemberCase: CamelCase
+ readability-identifier-naming.ProtectedMemberCase: CamelCase
+ readability-identifier-naming.PublicMemberCase: CamelCase
+ readability-identifier-naming.ScopedEnumConstantCase: CamelCase
+ readability-identifier-naming.StaticConstantCase: CamelCase
+ readability-identifier-naming.StaticVariableCase: CamelCase
+ readability-identifier-naming.VariableCase: CamelCase
+ readability-identifier-naming.AbstractClassHungarianPrefix: LowerCase
+ readability-identifier-naming.ClassHungarianPrefix: LowerCase
+ readability-identifier-naming.ClassConstantHungarianPrefix: LowerCase
+ readability-identifier-naming.ClassMemberHungarianPrefix: LowerCase
+ readability-identifier-naming.ConstantHungarianPrefix: LowerCase
+ readability-identifier-naming.ConstantMemberHungarianPrefix: LowerCase
+ readability-identifier-naming.ConstantParameterHungarianPrefix: LowerCase
+ readability-identifier-naming.ConstantPointerParameterHungarianPrefix: LowerCase
+ readability-identifier-naming.ConstexprVariableHungarianPrefix: LowerCase
+ readability-identifier-naming.EnumConstantHungarianPrefix: LowerCase
+ readability-identifier-naming.GlobalConstantHungarianPrefix: LowerCase
+ readability-identifier-naming.GlobalConstantPointerHungarianPrefix: LowerCase
+ readability-identifier-naming.GlobalPointerHungarianPrefix: LowerCase
+ readability-identifier-naming.GlobalVariableHungarianPrefix: LowerCase
+ readability-identifier-naming.LocalConstantHungarianPrefix: LowerCase
+ readability-identifier-naming.LocalConstantPointerHungarianPrefix: LowerCase
+ readability-identifier-naming.LocalPointerHungarianPrefix: LowerCase
+ readability-identifier-naming.LocalVariableHungarianPrefix: LowerCase
+ readability-identifier-naming.MemberHungarianPrefix: LowerCase
+ readability-identifier-naming.ParameterHungarianPrefix: LowerCase
+ readability-identifier-naming.PointerParameterHungarianPrefix: LowerCase
+ readability-identifier-naming.PrivateMemberHungarianPrefix: LowerCase
+ readability-identifier-naming.ProtectedMemberHungarianPrefix: LowerCase
+ readability-identifier-naming.PublicMemberHungarianPrefix: LowerCase
+ readability-identifier-naming.ScopedEnumConstantHungarianPrefix: LowerCase
+ readability-identifier-naming.StaticConstantHungarianPrefix: LowerCase
+ readability-identifier-naming.StaticVariableHungarianPrefix: LowerCase
+ readability-identifier-naming.VariableHungarianPrefix: LowerCase
diff --git a/clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-hungarian-notation-lower-case-prefix.cpp b/clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-hungarian-notation-lower-case-prefix.cpp
new file mode 100644
index 00000000000000..65aee7e9f6ced2
--- /dev/null
+++ b/clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-hungarian-notation-lower-case-prefix.cpp
@@ -0,0 +1,678 @@
+// RUN: %check_clang_tidy %s readability-identifier-naming %t -- \
+// RUN: --config-file=%S/Inputs/identifier-naming/hungarian-notation3/.clang-tidy -- -I %S
+
+#include "identifier-naming-standard-types.h"
+
+// clang-format off
+//===----------------------------------------------------------------------===//
+// Cases to CheckOptions
+//===----------------------------------------------------------------------===//
+class C_MyClass1 {
+public:
+ static int ClassMemberCase;
+ // CHECK-MESSAGES: :[[@LINE-1]]:14: warning: invalid case style for class member 'ClassMemberCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} static int i_ClassMemberCase;
+
+ char const ConstantMemberCase = 0;
+ // CHECK-MESSAGES: :[[@LINE-1]]:14: warning: invalid case style for constant member 'ConstantMemberCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} char const c_ConstantMemberCase = 0;
+
+ void MyFunc1(const int ConstantParameterCase);
+ // CHECK-MESSAGES: :[[@LINE-1]]:26: warning: invalid case style for constant parameter 'ConstantParameterCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} void MyFunc1(const int i_ConstantParameterCase);
+
+ void MyFunc2(const int* ConstantPointerParameterCase);
+ // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: invalid case style for pointer parameter 'ConstantPointerParameterCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} void MyFunc2(const int* pi_ConstantPointerParameterCase);
+
+ static constexpr int ConstexprVariableCase = 123;
+ // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: invalid case style for constexpr variable 'ConstexprVariableCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} static constexpr int i_ConstexprVariableCase = 123;
+};
+
+const int GlobalConstantCase = 0;
+// CHECK-MESSAGES: :[[@LINE-1]]:11: warning: invalid case style for global constant 'GlobalConstantCase' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}const int i_GlobalConstantCase = 0;
+
+const int* GlobalConstantPointerCase = nullptr;
+// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: invalid case style for global pointer 'GlobalConstantPointerCase' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}const int* pi_GlobalConstantPointerCase = nullptr;
+
+int* GlobalPointerCase = nullptr;
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: invalid case style for global pointer 'GlobalPointerCase' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}int* pi_GlobalPointerCase = nullptr;
+
+int GlobalVariableCase = 0;
+// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: invalid case style for global variable 'GlobalVariableCase' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}int i_GlobalVariableCase = 0;
+
+void Func1(){
+ int const LocalConstantCase = 3;
+ // CHECK-MESSAGES: :[[@LINE-1]]:13: warning: invalid case style for local constant 'LocalConstantCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} int const i_LocalConstantCase = 3;
+
+ unsigned const ConstantCase = 1;
+ // CHECK-MESSAGES: :[[@LINE-1]]:18: warning: invalid case style for local constant 'ConstantCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} unsigned const u_ConstantCase = 1;
+
+ int* const LocalConstantPointerCase = nullptr;
+ // CHECK-MESSAGES: :[[@LINE-1]]:14: warning: invalid case style for local constant pointer 'LocalConstantPointerCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} int* const pi_LocalConstantPointerCase = nullptr;
+
+ int *LocalPointerCase = nullptr;
+ // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: invalid case style for local pointer 'LocalPointerCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} int *pi_LocalPointerCase = nullptr;
+
+ int LocalVariableCase = 0;
+ // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: invalid case style for local variable 'LocalVariableCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} int i_LocalVariableCase = 0;
+}
+
+class C_MyClass2 {
+ char MemberCase;
+ // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: invalid case style for private member 'MemberCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} char c_MemberCase;
+
+ void Func1(int ParameterCase);
+ // CHECK-MESSAGES: :[[@LINE-1]]:18: warning: invalid case style for parameter 'ParameterCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} void Func1(int i_ParameterCase);
+
+ void Func2(const int ParameterCase);
+ // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: invalid case style for constant parameter 'ParameterCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} void Func2(const int i_ParameterCase);
+
+ void Func3(const int *PointerParameterCase);
+ // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: invalid case style for pointer parameter 'PointerParameterCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} void Func3(const int *pi_PointerParameterCase);
+};
+
+class C_MyClass3 {
+private:
+ char PrivateMemberCase;
+ // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: invalid case style for private member 'PrivateMemberCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} char c_PrivateMemberCase;
+
+protected:
+ char ProtectedMemberCase;
+ // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: invalid case style for protected member 'ProtectedMemberCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} char c_ProtectedMemberCase;
+
+public:
+ char PublicMemberCase;
+ // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: invalid case style for public member 'PublicMemberCase' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} char c_PublicMemberCase;
+};
+
+static const int StaticConstantCase = 3;
+// CHECK-MESSAGES: :[[@LINE-1]]:18: warning: invalid case style for global constant 'StaticConstantCase' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}static const int i_StaticConstantCase = 3;
+
+static int StaticVariableCase = 3;
+// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: invalid case style for global variable 'StaticVariableCase' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}static int i_StaticVariableCase = 3;
+
+struct MyStruct { int StructCase; };
+// CHECK-MESSAGES: :[[@LINE-1]]:23: warning: invalid case style for public member 'StructCase' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}struct MyStruct { int i_StructCase; };
+
+struct shouldBeCamelCaseStruct { int i_Field; };
+// CHECK-MESSAGES: :[[@LINE-1]]:8: warning: invalid case style for struct 'shouldBeCamelCaseStruct' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}struct ShouldBeCamelCaseStruct { int i_Field; };
+
+union MyUnion { int UnionCase; long l_UnionCase; };
+// CHECK-MESSAGES: :[[@LINE-1]]:7: warning: invalid case style for union 'MyUnion' [readability-identifier-naming]
+// CHECK-MESSAGES: :[[@LINE-2]]:21: warning: invalid case style for public member 'UnionCase' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}union myUnion { int i_UnionCase; long l_UnionCase; };
+
+//===----------------------------------------------------------------------===//
+// C string
+//===----------------------------------------------------------------------===//
+const char *NamePtr = "Name";
+// CHECK-MESSAGES: :[[@LINE-1]]:13: warning: invalid case style for global pointer 'NamePtr' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}const char *sz_NamePtr = "Name";
+
+const char NameArray[] = "Name";
+// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: invalid case style for global constant 'NameArray' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}const char sz_NameArray[] = "Name";
+
+const char *NamePtrArray[] = {"AA", "BB"};
+// CHECK-MESSAGES: :[[@LINE-1]]:13: warning: invalid case style for global variable 'NamePtrArray' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}const char *psz_NamePtrArray[] = {"AA", "BB"};
+
+const wchar_t *WideNamePtr = L"Name";
+// CHECK-MESSAGES: :[[@LINE-1]]:16: warning: invalid case style for global pointer 'WideNamePtr' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}const wchar_t *wsz_WideNamePtr = L"Name";
+
+const wchar_t WideNameArray[] = L"Name";
+// CHECK-MESSAGES: :[[@LINE-1]]:15: warning: invalid case style for global constant 'WideNameArray' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}const wchar_t wsz_WideNameArray[] = L"Name";
+
+const wchar_t *WideNamePtrArray[] = {L"AA", L"BB"};
+// CHECK-MESSAGES: :[[@LINE-1]]:16: warning: invalid case style for global variable 'WideNamePtrArray' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}const wchar_t *pwsz_WideNamePtrArray[] = {L"AA", L"BB"};
+
+class C_MyClass4 {
+private:
+ char *Name = "Text";
+ // CHECK-MESSAGES: :[[@LINE-1]]:9: warning: invalid case style for private member 'Name' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} char *sz_Name = "Text";
+
+ const char *ConstName = "Text";
+ // CHECK-MESSAGES: :[[@LINE-1]]:15: warning: invalid case style for private member 'ConstName' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} const char *sz_ConstName = "Text";
+
+public:
+ const char* DuplicateString(const char* Input, size_t n_RequiredSize);
+ // CHECK-MESSAGES: :[[@LINE-1]]:43: warning: invalid case style for pointer parameter 'Input' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} const char* DuplicateString(const char* sz_Input, size_t n_RequiredSize);
+
+ size_t UpdateText(const char* Buffer, size_t n_BufferSize);
+ // CHECK-MESSAGES: :[[@LINE-1]]:33: warning: invalid case style for pointer parameter 'Buffer' [readability-identifier-naming]
+ // CHECK-FIXES: {{^}} size_t UpdateText(const char* sz_Buffer, size_t n_BufferSize);
+};
+
+
+//===----------------------------------------------------------------------===//
+// Microsoft Windows data types
+//===----------------------------------------------------------------------===//
+DWORD MsDword = 0;
+// CHECK-MESSAGES: :[[@LINE-1]]:7: warning: invalid case style for global variable 'MsDword' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}DWORD dw_MsDword = 0;
+
+BYTE MsByte = 0;
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: invalid case style for global variable 'MsByte' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}BYTE by_MsByte = 0;
+
+WORD MsWord = 0;
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: invalid case style for global variable 'MsWord' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}WORD w_MsWord = 0;
+
+BOOL MsBool = 0;
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: invalid case style for global variable 'MsBool' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}BOOL b_MsBool = 0;
+
+BOOLEAN MsBoolean = 0;
+// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: invalid case style for global variable 'MsBoolean' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}BOOLEAN b_MsBoolean = 0;
+
+CHAR MsValueChar = 0;
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: invalid case style for global variable 'MsValueChar' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}CHAR c_MsValueChar = 0;
+
+UCHAR MsValueUchar = 0;
+// CHECK-MESSAGES: :[[@LINE-1]]:7: warning: invalid case style for global variable 'MsValueUchar' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}UCHAR uc_MsValueUchar = 0;
+
+SHORT MsValueShort = 0;
+// CHECK-MESSAGES: :[[@LINE-1]]:7: warning: invalid case style for global variable 'MsValueShort' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}SHORT s_MsValueShort = 0;
+
+USHORT MsValueUshort = 0;
+// CHECK-MESSAGES: :[[@LINE-1]]:8: warning: invalid case style for global variable 'MsValueUshort' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}USHORT us_MsValueUshort = 0;
+
+WORD MsValueWord = 0;
+// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: invalid case style for global variable 'MsValueWord' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}WORD w_MsValueWord = 0;
+
+DWORD MsValueDword = 0;
+// CHECK-MESSAGES: :[[@LINE-1]]:7: warning: invalid case style for global variable 'MsValueDword' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}DWORD dw_MsValueDword = 0;
+
+DWORD32 MsValueDword32 = 0;
+// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: invalid case style for global variable 'MsValueDword32' [readability-identifier-naming]
+// CHECK-FIXES: {{^}}DWOR...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/84236
More information about the cfe-commits
mailing list