llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang-tidy

Author: Pascal Jungblut (pascalj)

<details>
<summary>Changes</summary>

Add an option to ignore warnings for cppcoreguidelines 
avoid-non-const-global-variables.

Understandably, the core guidelines discourage non const global variables, even 
at the TU level (see https://github.com/isocpp/CppCoreGuidelines/issues/2195). 
However, having a small TU with an interface that uses a non const variable 
from an anonymous namespace can be a valid choice.

This adds an option that disables the warning just for anonymous namespaces, 
i.e. at the file level. The default is still to show a warning, just as before.

---

Patch is 36.15 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/93827.diff


3 Files Affected:

- (modified) 
clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidNonConstGlobalVariablesCheck.cpp
 (+4-2) 
- (modified) 
clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-non-const-global-variables.rst
 (+22) 
- (modified) 
clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-non-const-global-variables.cpp
 (+92-45) 


``````````diff
diff --git 
a/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidNonConstGlobalVariablesCheck.cpp
 
b/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidNonConstGlobalVariablesCheck.cpp
index ee17b0e014288..b536016a3cccd 100644
--- 
a/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidNonConstGlobalVariablesCheck.cpp
+++ 
b/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidNonConstGlobalVariablesCheck.cpp
@@ -7,7 +7,6 @@
 
//===----------------------------------------------------------------------===//
 
 #include "AvoidNonConstGlobalVariablesCheck.h"
-#include "clang/AST/ASTContext.h"
 #include "clang/ASTMatchers/ASTMatchFinder.h"
 #include "clang/ASTMatchers/ASTMatchers.h"
 
@@ -16,9 +15,12 @@ using namespace clang::ast_matchers;
 namespace clang::tidy::cppcoreguidelines {
 
 void AvoidNonConstGlobalVariablesCheck::registerMatchers(MatchFinder *Finder) {
+  auto NamespaceMatcher = Options.get("AllowAnonymousNamespace", false)
+                              ? namespaceDecl(unless(isAnonymous()))
+                              : namespaceDecl();
   auto GlobalContext =
       varDecl(hasGlobalStorage(),
-              hasDeclContext(anyOf(namespaceDecl(), translationUnitDecl())));
+              hasDeclContext(anyOf(NamespaceMatcher, translationUnitDecl())));
 
   auto GlobalVariable = varDecl(
       GlobalContext,
diff --git 
a/clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-non-const-global-variables.rst
 
b/clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-non-const-global-variables.rst
index 21c20af6e8107..e2350872c6ece 100644
--- 
a/clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-non-const-global-variables.rst
+++ 
b/clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-non-const-global-variables.rst
@@ -41,3 +41,25 @@ The variables ``a``, ``c``, ``c_ptr1``, ``c_const_ptr`` and 
``c_reference``
 will all generate warnings since they are either a non-const globally 
accessible
 variable, a pointer or a reference providing global access to non-const data
 or both.
+
+Options
+-------
+
+.. option:: AllowAnonymousNamespace
+
+   When set to `true` (default is `false`), non-const variables in anonymous 
namespaces will not generate a warning.
+
+Example
+^^^^^^^
+
+.. code-block:: c++
+
+   namespace {
+     int counter = 0;
+   }
+
+   int Increment() {
+    return ++counter;
+   }
+
+will not generate a warning for `counter` if :option:`AllowAnonymousNamespace` 
is set to `true`.
diff --git 
a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-non-const-global-variables.cpp
 
b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-non-const-global-variables.cpp
index 3ca1029433d22..8956dd414356e 100644
--- 
a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-non-const-global-variables.cpp
+++ 
b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-non-const-global-variables.cpp
@@ -1,21 +1,30 @@
-// RUN: %check_clang_tidy %s 
cppcoreguidelines-avoid-non-const-global-variables %t
+// RUN: %check_clang_tidy %s -check-suffix=DEFAULT 
cppcoreguidelines-avoid-non-const-global-variables %t
+// RUN: %check_clang_tidy %s -check-suffix=NAMESPACE 
cppcoreguidelines-avoid-non-const-global-variables %t -- \
+// RUN: -config="{CheckOptions: 
{cppcoreguidelines-avoid-non-const-global-variables.AllowAnonymousNamespace : 
'true'}}"
+
 
 int nonConstInt = 0;
-// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: variable 'nonConstInt' is 
non-const and globally accessible, consider making it const 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:5: warning: variable 'nonConstInt' is 
non-const and globally accessible, consider making it const 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:5: warning: variable 'nonConstInt' is 
non-const and globally accessible, consider making it const 
[cppcoreguidelines-avoid-non-const-global-variables]
 
 int &nonConstIntReference = nonConstInt;
-// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: variable 'nonConstIntReference' 
provides global access to a non-const object; consider making the referenced 
data 'const' [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:6: warning: variable 
'nonConstIntReference' provides global access to a non-const object; consider 
making the referenced data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:6: warning: variable 
'nonConstIntReference' provides global access to a non-const object; consider 
making the referenced data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
 
 int *pointerToNonConstInt = &nonConstInt;
-// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: variable 'pointerToNonConstInt' is 
non-const and globally accessible, consider making it const 
[cppcoreguidelines-avoid-non-const-global-variables]
-// CHECK-MESSAGES: :[[@LINE-2]]:6: warning: variable 'pointerToNonConstInt' 
provides global access to a non-const object; consider making the pointed-to 
data 'const' [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:6: warning: variable 
'pointerToNonConstInt' is non-const and globally accessible, consider making it 
const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:6: warning: variable 
'pointerToNonConstInt' is non-const and globally accessible, consider making it 
const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-3]]:6: warning: variable 
'pointerToNonConstInt' provides global access to a non-const object; consider 
making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-4]]:6: warning: variable 
'pointerToNonConstInt' provides global access to a non-const object; consider 
making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
 
 int *const constPointerToNonConstInt = &nonConstInt;
-// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: variable 
'constPointerToNonConstInt' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:12: warning: variable 
'constPointerToNonConstInt' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:12: warning: variable 
'constPointerToNonConstInt' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
 
 namespace namespace_name {
 int nonConstNamespaceInt = 0;
-// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: variable 'nonConstNamespaceInt' is 
non-const and globally accessible, consider making it const 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:5: warning: variable 
'nonConstNamespaceInt' is non-const and globally accessible, consider making it 
const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:5: warning: variable 
'nonConstNamespaceInt' is non-const and globally accessible, consider making it 
const [cppcoreguidelines-avoid-non-const-global-variables]
 
 const int constNamespaceInt = 0;
 } // namespace namespace_name
@@ -23,7 +32,8 @@ const int constNamespaceInt = 0;
 const int constInt = 0;
 
 const int *pointerToConstInt = &constInt;
-// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: variable 'pointerToConstInt' is 
non-const and globally accessible, consider making it const 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:12: warning: variable 
'pointerToConstInt' is non-const and globally accessible, consider making it 
const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:12: warning: variable 
'pointerToConstInt' is non-const and globally accessible, consider making it 
const [cppcoreguidelines-avoid-non-const-global-variables]
 
 const int *const constPointerToConstInt = &constInt;
 
@@ -38,7 +48,8 @@ int function() {
 
 namespace {
 int nonConstAnonymousNamespaceInt = 0;
-// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: variable 
'nonConstAnonymousNamespaceInt' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:5: warning: variable 
'nonConstAnonymousNamespaceInt' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE-NOT: :[[@LINE-2]]:5: warning: variable 
'nonConstAnonymousNamespaceInt' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
 } // namespace
 
 class DummyClass {
@@ -52,28 +63,37 @@ class DummyClass {
 };
 
 DummyClass nonConstClassInstance;
-// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: variable 'nonConstClassInstance' 
is non-const and globally accessible, consider making it const 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:12: warning: variable 
'nonConstClassInstance' is non-const and globally accessible, consider making 
it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:12: warning: variable 
'nonConstClassInstance' is non-const and globally accessible, consider making 
it const [cppcoreguidelines-avoid-non-const-global-variables]
 
 DummyClass *pointerToNonConstDummyClass = &nonConstClassInstance;
-// CHECK-MESSAGES: :[[@LINE-1]]:13: warning: variable 
'pointerToNonConstDummyClass' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
-// CHECK-MESSAGES: :[[@LINE-2]]:13: warning: variable 
'pointerToNonConstDummyClass' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:13: warning: variable 
'pointerToNonConstDummyClass' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:13: warning: variable 
'pointerToNonConstDummyClass' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-3]]:13: warning: variable 
'pointerToNonConstDummyClass' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-4]]:13: warning: variable 
'pointerToNonConstDummyClass' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
 
 DummyClass &referenceToNonConstDummyClass = nonConstClassInstance;
-// CHECK-MESSAGES: :[[@LINE-1]]:13: warning: variable 
'referenceToNonConstDummyClass' provides global access to a non-const object; 
consider making the referenced data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:13: warning: variable 
'referenceToNonConstDummyClass' provides global access to a non-const object; 
consider making the referenced data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:13: warning: variable 
'referenceToNonConstDummyClass' provides global access to a non-const object; 
consider making the referenced data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
 
 int *nonConstPointerToMember = 
&nonConstClassInstance.nonConstPublicMemberVariable;
-// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: variable 'nonConstPointerToMember' 
is non-const and globally accessible, consider making it const 
[cppcoreguidelines-avoid-non-const-global-variables]
-// CHECK-MESSAGES: :[[@LINE-2]]:6: warning: variable 'nonConstPointerToMember' 
provides global access to a non-const object; consider making the pointed-to 
data 'const' [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:6: warning: variable 
'nonConstPointerToMember' is non-const and globally accessible, consider making 
it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:6: warning: variable 
'nonConstPointerToMember' is non-const and globally accessible, consider making 
it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-3]]:6: warning: variable 
'nonConstPointerToMember' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-4]]:6: warning: variable 
'nonConstPointerToMember' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
 int *const constPointerToNonConstMember = 
&nonConstClassInstance.nonConstPublicMemberVariable;
-// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: variable 
'constPointerToNonConstMember' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:12: warning: variable 
'constPointerToNonConstMember' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:12: warning: variable 
'constPointerToNonConstMember' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
 
 const DummyClass constClassInstance;
 
 DummyClass *const constPointerToNonConstDummyClass = &nonConstClassInstance;
-// CHECK-MESSAGES: :[[@LINE-1]]:19: warning: variable 
'constPointerToNonConstDummyClass' provides global access to a non-const 
object; consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:19: warning: variable 
'constPointerToNonConstDummyClass' provides global access to a non-const 
object; consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:19: warning: variable 
'constPointerToNonConstDummyClass' provides global access to a non-const 
object; consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
 
 const DummyClass *nonConstPointerToConstDummyClass = &constClassInstance;
-// CHECK-MESSAGES: :[[@LINE-1]]:19: warning: variable 
'nonConstPointerToConstDummyClass' is non-const and globally accessible, 
consider making it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:19: warning: variable 
'nonConstPointerToConstDummyClass' is non-const and globally accessible, 
consider making it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:19: warning: variable 
'nonConstPointerToConstDummyClass' is non-const and globally accessible, 
consider making it const [cppcoreguidelines-avoid-non-const-global-variables]
 
 const DummyClass *const constPointerToConstDummyClass = &constClassInstance;
 
@@ -83,7 +103,8 @@ const DummyClass &constReferenceToDummyClass = 
constClassInstance;
 
 namespace namespace_name {
 DummyClass nonConstNamespaceClassInstance;
-// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: variable 
'nonConstNamespaceClassInstance' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:12: warning: variable 
'nonConstNamespaceClassInstance' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:12: warning: variable 
'nonConstNamespaceClassInstance' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
 
 const DummyClass constDummyClassInstance;
 } // namespace namespace_name
@@ -95,22 +116,28 @@ enum DummyEnum {
 };
 
 DummyEnum nonConstDummyEnumInstance = DummyEnum::first;
-// CHECK-MESSAGES: :[[@LINE-1]]:11: warning: variable 
'nonConstDummyEnumInstance' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:11: warning: variable 
'nonConstDummyEnumInstance' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:11: warning: variable 
'nonConstDummyEnumInstance' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
 
 DummyEnum *pointerToNonConstDummyEnum = &nonConstDummyEnumInstance;
-// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: variable 
'pointerToNonConstDummyEnum' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
-// CHECK-MESSAGES: :[[@LINE-2]]:12: warning: variable 
'pointerToNonConstDummyEnum' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:12: warning: variable 
'pointerToNonConstDummyEnum' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:12: warning: variable 
'pointerToNonConstDummyEnum' is non-const and globally accessible, consider 
making it const [cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-3]]:12: warning: variable 
'pointerToNonConstDummyEnum' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-4]]:12: warning: variable 
'pointerToNonConstDummyEnum' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
 
 DummyEnum &referenceToNonConstDummyEnum = nonConstDummyEnumInstance;
-// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: variable 
'referenceToNonConstDummyEnum' provides global access to a non-const object; 
consider making the referenced data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:12: warning: variable 
'referenceToNonConstDummyEnum' provides global access to a non-const object; 
consider making the referenced data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:12: warning: variable 
'referenceToNonConstDummyEnum' provides global access to a non-const object; 
consider making the referenced data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
 
 DummyEnum *const constPointerToNonConstDummyEnum = &nonConstDummyEnumInstance;
-// CHECK-MESSAGES: :[[@LINE-1]]:18: warning: variable 
'constPointerToNonConstDummyEnum' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-DEFAULT: [[@LINE-1]]:18: warning: variable 
'constPointerToNonConstDummyEnum' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
+// CHECK-MESSAGES-NAMESPACE: [[@LINE-2]]:18: warning: variable 
'constPointerToNonConstDummyEnum' provides global access to a non-const object; 
consider making the pointed-to data 'const' 
[cppcoreguidelines-avoid-non-const-global-variables]
 
 const DummyEnum constDummyEnumInstance = DummyEnum::first;
 
 const DummyEnum *nonConstPointerToConstDummyEnum = &constDummyEnumInstance;
-// CHECK-MESSAGES: :[[@LINE-1]]:18: warning: variable 
'nonConstPointerToConstDummyEnum' is non-const and globally accessible, 
consider making it const [c...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/93827
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to