See More

/* * Cppcheck - A tool for static C/C++ code analysis * Copyright (C) 2007-2026 Cppcheck team. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "checks.h" #include "check64bit.h" #include "checkassert.h" #include "checkautovariables.h" #include "checkbool.h" #include "checkbufferoverrun.h" #include "checkclass.h" #include "checkcondition.h" #include "checkexceptionsafety.h" #include "checkfunctions.h" #include "checkinternal.h" #include "checkio.h" #include "checkleakautovar.h" #include "checkmemoryleak.h" #include "checknullpointer.h" #include "checkother.h" #include "checkpostfixoperator.h" #include "checksizeof.h" #include "checkstl.h" #include "checkstring.h" #include "checktype.h" #include "checkuninitvar.h" #include "checkunusedvar.h" #include "checkvaarg.h" #include class CheckInstancesImpl { private: /* *INDENT-OFF* */ #define UPI(c) std::unique_ptr m##c{new c} /* *INDENT-ON* */ UPI(Check64BitPortability); UPI(CheckAssert); UPI(CheckAutoVariables); UPI(CheckBool); UPI(CheckBufferOverrun); UPI(CheckClass); UPI(CheckCondition); UPI(CheckExceptionSafety); UPI(CheckFunctions); #ifdef CHECK_INTERNAL UPI(CheckInternal); #endif UPI(CheckIO); UPI(CheckLeakAutoVar); UPI(CheckMemoryLeakInFunction); UPI(CheckMemoryLeakInClass); UPI(CheckMemoryLeakStructMember); UPI(CheckMemoryLeakNoVar); UPI(CheckNullPointer); UPI(CheckOther); UPI(CheckPostfixOperator); UPI(CheckSizeof); UPI(CheckStl); UPI(CheckString); UPI(CheckType); UPI(CheckUninitVar); UPI(CheckUnusedVar); UPI(CheckVaarg); #undef UPI public: const std::list& get() const { static std::list s_checks{ mCheck64BitPortability.get(), mCheckAssert.get(), mCheckAutoVariables.get(), mCheckBool.get(), mCheckBufferOverrun.get(), mCheckClass.get(), mCheckCondition.get(), mCheckExceptionSafety.get(), mCheckFunctions.get(), #ifdef CHECK_INTERNAL mCheckInternal.get(), #endif mCheckIO.get(), mCheckLeakAutoVar.get(), mCheckMemoryLeakInFunction.get(), mCheckMemoryLeakInClass.get(), mCheckMemoryLeakStructMember.get(), mCheckMemoryLeakNoVar.get(), mCheckNullPointer.get(), mCheckOther.get(), mCheckPostfixOperator.get(), mCheckSizeof.get(), mCheckStl.get(), mCheckString.get(), mCheckType.get(), mCheckUninitVar.get(), mCheckUnusedVar.get(), mCheckVaarg.get() }; return s_checks; } }; const std::list& CheckInstances::get() { static const CheckInstancesImpl s_impl; return s_impl.get(); }