-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Expand file tree
/
Copy pathchecks.cpp
More file actions
125 lines (118 loc) · 3.4 KB
/
checks.cpp
File metadata and controls
125 lines (118 loc) · 3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/*
* 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 <http://www.gnu.org/licenses/>.
*/
#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 <memory>
class CheckInstancesImpl
{
private:
/* *INDENT-OFF* */
#define UPI(c) std::unique_ptr<c> 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<Check *>& get() const
{
static std::list<Check*> 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<Check*>& CheckInstances::get()
{
static const CheckInstancesImpl s_impl;
return s_impl.get();
}