================
@@ -0,0 +1,32 @@
+.. title:: clang-tidy - google-cpp-init-class-members
+
+google-cpp-init-class-members
+=============================
+
+Checks that class members are initialized in constructors (implicitly or
+explicitly). Reports constructors or classes where class members are not
+initialized. The goal of this checker is to eliminate UUM (Use of
+Uninitialized Memory) bugs caused by uninitialized class members.
+
+This checker is different from ProTypeMemberInitCheck in that this checker
+attempts to eliminate UUMs as a bug class, at the expense of false
+positives.
+
+This checker is WIP. We are incrementally adding features and increasing
+coverage until we get to a shape that is acceptable.
+
+For now, this checker reports `X` in the following two patterns:
+
+.. code-block:: c++
+  class SomeClass {
+  public:
+    SomeClass() = default;
+
+  private:
+    int X;
+  };
+
+.. code-block:: c++
+  struct SomeStruct {
+    int X;
+  };
----------------
adriannistor wrote:

You are right, fully agree! I added a [broader discussion 
below](https://github.com/llvm/llvm-project/pull/65189#issuecomment-1709185690).
 To summarize (full context there), we are still working the high level 
specifications and the low level specifications based on data. Once we have a 
stable and mature version, we will update the documentation for this checker in 
a more concrete and actionable way. Until then, we will keep this file 
(`cpp-init-class-members.rst`) and the unit tests as a high level and low level 
specifications, respectively. Full details in the [broader discussion 
below](https://github.com/llvm/llvm-project/pull/65189#issuecomment-1709185690).
 Thanks!



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

Reply via email to