//===--- ProTypeMemberInitCheck.h - clang-tidy-------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CPPCOREGUIDELINES_PRO_TYPE_MEMBER_INIT_H #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CPPCOREGUIDELINES_PRO_TYPE_MEMBER_INIT_H #include "../ClangTidyCheck.h" #include "llvm/ADT/DenseSet.h" namespace clang::tidy::cppcoreguidelines { /// Implements C++ Core Guidelines Type.6. /// /// Checks that every user-provided constructor value-initializes all class /// members and base classes that would have undefined behavior otherwise. Also /// check that any record types without user-provided default constructors are /// value-initialized where used. /// /// Members initialized through function calls in the body of the constructor /// will result in false positives. /// /// For the user-facing documentation see: /// http://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/pro-type-member-init.html /// TODO: See if 'fixes' for false positives are optimized away by the compiler. /// TODO: For classes with multiple constructors, make sure that we don't offer /// multiple in-class initializer fixits for the same member. class ProTypeMemberInitCheck : public ClangTidyCheck { … }; } // namespace clang::tidy::cppcoreguidelines #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CPPCOREGUIDELINES_PRO_TYPE_MEMBER_INIT_H