[clang-tools-extra] [clang-tidy] Add AllowReferencedInitialValues to `readability-enum-initial-value` (PR #189459)

Baranov Victor via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 5 01:57:19 PDT 2026


=?utf-8?q?Björn?= Svensson <bjorn.a.svensson at est.tech>,
=?utf-8?q?Björn?= Svensson <bjorn.a.svensson at est.tech>,
=?utf-8?q?Björn?= Svensson <bjorn.a.svensson at est.tech>,
=?utf-8?q?Björn?= Svensson <bjorn.a.svensson at est.tech>,
=?utf-8?q?Björn?= Svensson <bjorn.a.svensson at est.tech>,
=?utf-8?q?Björn?= Svensson <bjorn.a.svensson at est.tech>,
=?utf-8?q?Björn?= Svensson <bjorn.a.svensson at est.tech>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/189459 at github.com>


================
@@ -0,0 +1,34 @@
+// RUN: %check_clang_tidy %s readability-enum-initial-value %t -- \
+// RUN:     -config='{CheckOptions: { \
+// RUN:         readability-enum-initial-value.AllowExplicitZeroFirstInitialValue: false, \
+// RUN:         readability-enum-initial-value.AllowExplicitSequentialInitialValues: false, \
+// RUN:         readability-enum-initial-value.AllowReferencedInitialValues: true, \
+// RUN:     }}'
+
+// Error: zero-first + self-ref, should still warn about the zero.
+enum EZeroRef {
+  EZeroRef_a = 0,
+  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: zero initial value for the first enumerator in 'EZeroRef' can be disregarded
+  // CHECK-FIXES: EZeroRef_a ,
+  EZeroRef_b,
+  EZeroRef_last = EZeroRef_b,
+};
+
+// Error: sequential + self-ref, should still warn but not suggest
+// removing the self-ref.
+enum ESeqRef {
+  // CHECK-MESSAGES: :[[@LINE-1]]:1: warning: sequential initial value in 'ESeqRef' can be ignored
+  ESeqRef_a = 1,
+  ESeqRef_b = 2,
+  // CHECK-FIXES: ESeqRef_b ,
+  ESeqRef_c = 3,
+  // CHECK-FIXES: ESeqRef_c ,
+  ESeqRef_alias = ESeqRef_a,
----------------
vbvictor wrote:

Can we add test with multiple self refs like

```cpp
ESeqRef_c = 3,
ESeqRef_alias = ESeqRef_a,
ESeqRef_alias2 = ESeqRef_b,
```

```cpp
ESeqRef_c = 3,
ESeqRef_alias = ESeqRef_a,
ESeqRef_c = 4,
ESeqRef_alias2 = ESeqRef_b,
```

https://github.com/llvm/llvm-project/pull/189459


More information about the cfe-commits mailing list