================ @@ -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