It is recommended to use the CppDepend interactive UI capabilities
to make the most of CppDepend by mastering all aspects of your code.
Diagrams
Application Metrics
Note: Further Application Statistics are available.
|
Quality Gates summary
812
can be stopped upon quality gate
failure. Online documentation.

be run on the baseline. Hence they
have blank trend and baseline status.
Name | Trend | Baseline Value | Value | Group | |||
---|---|---|---|---|---|---|---|
| ![]() | Project Rules \ Quality Gates | |||||
| ![]() | Project Rules \ Quality Gates | |||||
| ![]() | Project Rules \ Quality Gates | |||||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | Project Rules \ Quality Gates | |||||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | Project Rules \ Quality Gates | |||||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | Project Rules \ Quality Gates |
Rules summary
251213- Number of Rules or Queries with Error (syntax error, exception thrown, time-out): 0
- Number of Rules violated: 24

VisualCppDepend.
Online documentation.

run on the baseline. Hence they
have blank # Issues Fixed or Added.
Name | # Issues | Added | Fixed | Elements | Group | |||
---|---|---|---|---|---|---|---|---|
| 66 | 0 | 0 | types | Project Rules \ Code Smells | |||
| 100 | 0 | 0 | types | Project Rules \ Code Smells | |||
| 14 | 0 | 0 | types | Project Rules \ Code Smells | |||
| 433 | 0 | 0 | methods | Project Rules \ Code Smells | |||
| 32 | 0 | 0 | methods | Project Rules \ Code Smells | |||
| 74 | 0 | 0 | methods | Project Rules \ Code Smells | |||
| 116 | 0 | 0 | methods | Project Rules \ Code Smells | |||
| 479 | 0 | 0 | methods | Project Rules \ Code Smells | |||
| 19 | 0 | 0 | types | Project Rules \ Code Smells | |||
| 2 | 0 | 0 | types | Project Rules \ Object Oriented Design | |||
| 13 | 0 | 0 | fields | Project Rules \ Object Oriented Design | |||
| 6 | 0 | 0 | types | Project Rules \ Object Oriented Design | |||
| 146 | 0 | 0 | types | Project Rules \ Object Oriented Design | |||
| 1 | 0 | 0 | project | Project Rules \ Object Oriented Design | |||
| 12 | 0 | 0 | types | Project Rules \ Object Oriented Design | |||
| 127 | 0 | 0 | methods | Project Rules \ CWE Rules | |||
| 20 | 0 | 0 | types | Project Rules \ Dead Code | |||
| 3926 | 0 | 0 | methods | Project Rules \ Dead Code | |||
| 113 | 0 | 0 | fields | Project Rules \ Dead Code | |||
| 10 | 0 | 0 | fields | Project Rules \ Naming Conventions | |||
| 10 | 0 | 0 | fields | Project Rules \ Naming Conventions | |||
| 6 | 0 | 0 | types | Project Rules \ Naming Conventions | |||
| 5 | 0 | 0 | types | Project Rules \ Naming Conventions | |||
| 129 | 0 | 0 | methods | Project Rules \ Naming Conventions |
Application Statistics
Stat | # Occurences | Avg | StdDev | Max |
---|---|---|---|---|
Properties on interfaces | interfaces | 0 | 0 | -1 properties on |
Methods on interfaces | interfaces | 0 | 0 | -1 methods on |
Arguments on methods on interfaces | methods | 0 | 0 | -1 arguments on |
Public properties on classes | 406 Classes | 0 | 0 | 0 public properties on Keywords |
Public methods on classes | 406 classes | 12.73 | 21.76 | 244 public methods on __Globals |
Arguments on public methods on classes | 5,168 methods | 1.02 | 1.17 | 10 arguments on __Globals.valueFlowForward(Token*const,constToken*const,constVariable*const,constunsignedint,std::list<ValueFlow::Value>,constbool,constbool,TokenList*const,ErrorLogger*const,constSettings*const) |
IL instructions in non-abstract methods | 10,052 methods | 0.14 | 0.5 | 6 IL instructions in CheckBufferOverrun.checkStructVariable() |
Cyclomatic complexity on non abstract Methods | 10,052 Methods | 0.45 | 1.73 | CC = 47 for Library.load(consttinyxml2::XMLDocument&) |
Projects Metrics
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Projects | # lines of code | # IL instruction | # Types | # Abstract Types | # lines of comment | % Comment | % Coverage | Afferent Coupling | Efferent Coupling | Relational Cohesion | Instability | Abstractness | Distance |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cli v1.0.0.0 | 1495 | 19 | 78 | 2 | 1731 | 53,65778 | - | 0 | 42 | 1.78 | 1 | 0.04 | 0.03 |
cppcheck v1.0.0.0 | 33002 | 1251 | 186 | 4 | 8002 | 19,51517 | - | 0 | 52 | 4.81 | 1 | 0.02 | 0.02 |
testrunner v1.0.0.0 | 29576 | 95 | 231 | 4 | 9061 | 23,45161 | - | 0 | 50 | 3.3 | 1 | 0.02 | 0.01 |
If you wish to define thresholds on types' Code Metrics, consider writing some Rule.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Types Metrics : Code Quality
Type Name | Type Rank | # Lines Of Code | # IL Instructions | # Lines Of Comment | % Comment | Cyclomatic Complexity | % Coverage | Afferent Coupling | Efferent Coupling | Type Namespace |
---|---|---|---|---|---|---|---|---|---|---|
Token | 12.07 | 154 | 317 | 67.3 | 217 | - | 62 | 16 | ||
Settings | 11.2 | 8 | 24 | 75 | 17 | - | 92 | 18 | ||
Token | 9 | 933 | 370 | 28.4 | 640 | - | 59 | 37 | ||
Tokenizer | 7.91 | 10 | 436 | 97.76 | 150 | - | 76 | 11 | ||
TestFixture | 6.97 | 94 | 4 | 4.08 | 43 | - | 60 | 20 | ||
StrPair+AnonymousEnum | 5.82 | - | 0 | - | 0 | - | 1 | 0 | tinyxml2 | |
ErrorLogger | 5.66 | 4 | 35 | 89.74 | 11 | - | 41 | 7 | ||
XMLDocument | 5.57 | 18 | 114 | 86.36 | 40 | - | 15 | 13 | tinyxml2 | |
StrPair | 5.51 | 12 | 7 | 36.84 | 14 | - | 8 | 1 | tinyxml2 | |
XMLVisitor | 4.79 | 8 | 43 | 84.31 | 10 | - | 8 | 7 | tinyxml2 | |
XMLNode | 4.53 | 35 | 136 | 79.53 | 56 | - | 8 | 9 | tinyxml2 | |
Scope | 3.59 | 459 | 100 | 17.89 | 326 | - | 39 | 33 | ||
XMLUtil | 3.48 | 160 | 24 | 13.04 | 72 | - | 10 | 0 | tinyxml2 | |
Check | 3.45 | 23 | 20 | 46.51 | 23 | - | 30 | 13 | ||
XMLNode | 3.35 | 218 | 162 | 42.63 | 102 | - | 16 | 12 | tinyxml2 | |
Severity+SeverityType | 3.1 | - | 0 | - | 0 | - | 14 | 0 | ||
Library | 2.96 | 49 | 21 | 30 | 96 | - | 30 | 25 | ||
XMLError | 2.89 | - | 0 | - | 0 | - | 12 | 0 | tinyxml2 | |
XMLDocument | 2.87 | 237 | 137 | 36.63 | 71 | - | 12 | 16 | tinyxml2 | |
Severity+SeverityType | 2.87 | - | 0 | - | 0 | - | 38 | 0 | ||
Variable | 2.8 | 167 | 231 | 58.04 | 139 | - | 33 | 18 | ||
StrPair | 2.58 | 142 | 28 | 16.47 | 47 | - | 8 | 4 | tinyxml2 | |
StrPair+AnonymousEnum | 2.58 | - | 0 | - | 0 | - | 6 | 0 | tinyxml2 | |
Library+ErrorCode | 2.56 | - | 0 | - | 0 | - | 20 | 0 | ||
XMLElement | 2.54 | 273 | 216 | 44.17 | 135 | - | 13 | 12 | tinyxml2 | |
Settings | 2.46 | 71 | 25 | 26.04 | 31 | - | 41 | 21 | ||
XMLDeclaration | 2.46 | 2 | 12 | 85.71 | 10 | - | 6 | 4 | tinyxml2 | |
XMLText | 2.46 | 5 | 15 | 75 | 12 | - | 6 | 4 | tinyxml2 | |
XMLUnknown | 2.46 | 2 | 8 | 80 | 10 | - | 6 | 4 | tinyxml2 | |
XMLElement | 2.46 | 51 | 194 | 79.18 | 73 | - | 6 | 6 | tinyxml2 | |
Scope | 2.44 | 13 | 35 | 72.92 | 46 | - | 12 | 16 | ||
XMLVisitor | 2.35 | 8 | 43 | 84.31 | 12 | - | 8 | 7 | tinyxml2 | |
Platform+PlatformType | 2.32 | - | 0 | - | 0 | - | 19 | 0 | cppcheck | |
ErrorLogger+ErrorMessage | 2.31 | 2 | 25 | 92.59 | 22 | - | 9 | 9 | ||
TokenList | 2.11 | 9 | 56 | 86.15 | 27 | - | 12 | 6 | ||
XMLComment | 2.01 | 2 | 2 | 50 | 10 | - | 4 | 4 | tinyxml2 | |
XMLError | 2 | - | 0 | - | 0 | - | 3 | 0 | tinyxml2 | |
XMLAttribute | 1.99 | 22 | 36 | 62.07 | 29 | - | 4 | 3 | tinyxml2 | |
Type | 1.98 | 102 | 19 | 15.7 | 68 | - | 17 | 22 | ||
XMLText | 1.92 | 30 | 17 | 36.17 | 21 | - | 7 | 8 | tinyxml2 | |
Platform | 1.91 | 22 | 9 | 29.03 | 24 | - | 19 | 4 | cppcheck | |
Tokenizer | 1.9 | 5459 | 1467 | 21.18 | 3156 | - | 34 | 58 | ||
MemPool | 1.88 | 0 | 4 | 100 | 8 | - | 3 | 0 | tinyxml2 | |
Function | 1.87 | 267 | 63 | 19.09 | 194 | - | 27 | 25 | ||
ErrorLogger | 1.87 | 48 | 38 | 44.19 | 34 | - | 36 | 15 | ||
MemPoolT<ITEM_SIZE>+Item | 1.82 | 0 | 1 | 100 | 0 | - | 2 | 0 | tinyxml2 | |
MemPoolT<ITEM_SIZE>+Item | 1.81 | 0 | 1 | 100 | 0 | - | 2 | 0 | tinyxml2 | |
SymbolDatabase | 1.77 | 1704 | 304 | 15.14 | 940 | - | 31 | 59 | ||
Token | 1.67 | 154 | 317 | 67.3 | 217 | - | 8 | 16 | ||
XMLDeclaration | 1.66 | 16 | 16 | 50 | 13 | - | 6 | 7 | tinyxml2 | |
XMLUnknown | 1.66 | 16 | 11 | 40.74 | 13 | - | 6 | 7 | tinyxml2 | |
Location | 1.59 | 27 | 4 | 12.9 | 20 | - | 9 | 5 | simplecpp | |
MemPool | 1.58 | 0 | 4 | 100 | 9 | - | 5 | 0 | tinyxml2 | |
Value+MoveKind | 1.58 | - | 0 | - | 0 | - | 4 | 0 | ValueFlow | |
Library+Error | 1.55 | 4 | 0 | 0 | 6 | - | 20 | 2 | ||
Severity+SeverityType | 1.51 | - | 0 | - | 0 | - | 7 | 0 | ||
Check | 1.51 | 35 | 23 | 39.66 | 25 | - | 30 | 18 | ||
VarInfo+AllocStatus | 1.47 | - | 0 | - | 0 | - | 3 | 0 | ||
ErrorLogger+ErrorMessage+FileLocation | 1.46 | 3 | 17 | 85 | 11 | - | 5 | 6 | ||
Library+ArgumentChecks+MinSize+Type | 1.45 | - | 0 | - | 0 | - | 2 | 0 | ||
Value | 1.42 | 63 | 1 | 1.56 | 38 | - | 6 | 4 | ValueFlow | |
Type | 1.41 | 10 | 11 | 52.38 | 22 | - | 7 | 12 | ||
Check+FileInfo | 1.4 | 1 | 1 | 50 | 4 | - | 5 | 4 | ||
Variables | 1.4 | 124 | 20 | 13.89 | 66 | - | 2 | 21 | ||
Library+ArgumentChecks+MinSize+Type | 1.36 | - | 0 | - | 0 | - | 2 | 0 | ||
Suppressions+SuppressionEntry | 1.36 | 3 | 0 | 0 | 4 | - | 3 | 4 | ||
VarInfo+AllocStatus | 1.35 | - | 0 | - | 0 | - | 1 | 0 | ||
Library | 1.32 | 807 | 43 | 5.06 | 439 | - | 21 | 51 | ||
Library+ArgumentChecks+MinSize+Type | 1.3 | - | 0 | - | 0 | - | 1 | 0 | ||
Scope+ScopeType | 1.26 | - | 0 | - | 0 | - | 20 | 0 | ||
XMLComment | 1.21 | 16 | 5 | 23.81 | 13 | - | 4 | 7 | tinyxml2 | |
MathLib | 1.2 | 649 | 88 | 11.94 | 378 | - | 19 | 15 | ||
XMLAttribute | 1.2 | 76 | 41 | 35.04 | 41 | - | 5 | 6 | tinyxml2 | |
AccessControl | 1.18 | - | 0 | - | 0 | - | 8 | 0 | ||
SHOWTIME_MODES | 1.12 | - | 0 | - | 0 | - | 4 | 0 | ||
InternalError | 1.11 | 9 | 3 | 25 | 7 | - | 11 | 6 | ||
InternalError | 1.09 | 0 | 3 | 100 | 5 | - | 12 | 5 | ||
Settings | 1.06 | 8 | 24 | 75 | 17 | - | 9 | 18 | ||
options | 1.05 | 8 | 8 | 50 | 8 | - | 2 | 8 | ||
Entity | 1.05 | 0 | 0 | - | 0 | - | 2 | 0 | tinyxml2 | |
Location | 1.04 | 17 | 4 | 19.05 | 13 | - | 5 | 5 | simplecpp | |
Library+Container+Yield | 1.01 | - | 0 | - | 0 | - | 5 | 0 | ||
ValueType | 1.01 | 151 | 1 | 0.66 | 84 | - | 12 | 15 | ||
Check+FileInfo | 0.98 | 1 | 1 | 50 | 4 | - | 6 | 4 | ||
Token+Type | 0.97 | - | 0 | - | 0 | - | 16 | 0 | ||
Library+Container+Action | 0.97 | - | 0 | - | 0 | - | 4 | 0 | ||
Location | 0.96 | 17 | 4 | 19.05 | 13 | - | 4 | 5 | simplecpp | |
Suppressions | 0.96 | 0 | 43 | 100 | 13 | - | 6 | 6 | ||
Path | 0.96 | 98 | 108 | 52.43 | 74 | - | 13 | 16 | ||
Value | 0.95 | 63 | 1 | 1.56 | 38 | - | 12 | 4 | ValueFlow | |
StrPair+AnonymousEnum | 0.94 | - | 0 | - | 0 | - | 1 | 0 | tinyxml2 | |
Token+Type | 0.94 | - | 0 | - | 0 | - | 3 | 0 | ||
AccessControl | 0.92 | - | 0 | - | 0 | - | 5 | 0 | ||
CWE | 0.91 | 1 | 4 | 80 | 6 | - | 3 | 0 | ||
Library+Container+Yield | 0.9 | - | 0 | - | 0 | - | 3 | 0 | ||
Library+Container+Action | 0.9 | - | 0 | - | 0 | - | 3 | 0 | ||
Platform+PlatformType | 0.89 | - | 0 | - | 0 | - | 4 | 0 | cppcheck | |
Value+ValueType | 0.87 | - | 0 | - | 0 | - | 3 | 0 | ValueFlow | |
Value+MoveKind | 0.86 | - | 0 | - | 0 | - | 3 | 0 | ValueFlow | |
Token+AnonymousEnum | 0.85 | - | 0 | - | 0 | - | 1 | 0 | ||
Token+Anonymous | 0.85 | 0 | 0 | - | 0 | - | 1 | 0 | ||
TimerResults | 0.85 | 0 | 0 | - | 8 | - | 1 | 6 | ||
ImportProject | 0.84 | 0 | 5 | 100 | 13 | - | 4 | 7 | ||
ErrorLogger+ErrorMessage | 0.83 | 2 | 25 | 92.59 | 22 | - | 6 | 9 | ||
Library+Container+Yield | 0.83 | - | 0 | - | 0 | - | 2 | 0 | ||
Library+Container+Action | 0.83 | - | 0 | - | 0 | - | 2 | 0 | ||
Settings+Language | 0.83 | - | 0 | - | 0 | - | 3 | 0 | ||
Value+ValueType | 0.81 | - | 0 | - | 0 | - | 2 | 0 | ValueFlow | |
Function | 0.79 | 64 | 15 | 18.99 | 65 | - | 5 | 12 | ||
Platform | 0.79 | 185 | 14 | 7.04 | 50 | - | 12 | 8 | cppcheck | |
ErrorLogger+ErrorMessage | 0.77 | 223 | 61 | 21.48 | 78 | - | 11 | 34 | ||
Library+ErrorCode | 0.77 | - | 0 | - | 0 | - | 2 | 0 | ||
Library+ErrorCode | 0.77 | - | 0 | - | 0 | - | 2 | 0 | ||
TokenList | 0.75 | 251 | 115 | 31.42 | 134 | - | 12 | 27 | ||
Library+ArgumentChecks+IteratorInfo | 0.74 | 4 | 0 | 0 | 6 | - | 2 | 0 | ||
Variable | 0.74 | 55 | 218 | 79.85 | 64 | - | 5 | 16 | ||
XMLElement+AnonymousEnum | 0.73 | - | 0 | - | 0 | - | 2 | 0 | tinyxml2 | |
SymbolDatabase | 0.73 | 4 | 28 | 87.5 | 48 | - | 6 | 14 | ||
TimerResultsIntf | 0.71 | 0 | 0 | - | 5 | - | 2 | 3 | ||
TokenList | 0.71 | 9 | 56 | 86.15 | 27 | - | 3 | 6 | ||
TimerResultsData | 0.71 | 4 | 0 | 0 | 3 | - | 1 | 0 | ||
Value+ValueKind | 0.7 | - | 0 | - | 0 | - | 1 | 0 | ValueFlow | |
Whitespace | 0.69 | - | 0 | - | 0 | - | 2 | 0 | tinyxml2 | |
Type+BaseInfo | 0.68 | 5 | 1 | 16.67 | 7 | - | 8 | 4 | ||
CheckMemoryLeak | 0.68 | 3 | 57 | 95 | 21 | - | 5 | 12 | ||
Path | 0.67 | 2 | 98 | 98 | 23 | - | 7 | 7 | ||
InternalError+Type | 0.65 | - | 0 | - | 0 | - | 5 | 0 | ||
Platform+PlatformType | 0.64 | - | 0 | - | 0 | - | 7 | 0 | cppcheck | |
TimerResultsIntf | 0.63 | 0 | 0 | - | 5 | - | 2 | 3 | ||
MemPoolT<ITEM_SIZE> | 0.63 | 42 | 3 | 6.67 | 17 | - | 2 | 5 | tinyxml2 | |
ErrorLogger+ErrorMessage+FileLocation | 0.62 | 3 | 17 | 85 | 11 | - | 4 | 6 | ||
DynArray<T,INITIAL_SIZE> | 0.61 | 46 | 3 | 6.12 | 21 | - | 2 | 0 | tinyxml2 | |
Value+MoveKind | 0.61 | - | 0 | - | 0 | - | 2 | 0 | ValueFlow | |
ErrorLogger | 0.61 | 4 | 35 | 89.74 | 11 | - | 6 | 7 | ||
Function+Type | 0.61 | - | 0 | - | 0 | - | 8 | 0 | ||
Library+ArgumentChecks+IteratorInfo | 0.6 | 4 | 0 | 0 | 6 | - | 3 | 0 | ||
Value+ValueKind | 0.6 | - | 0 | - | 0 | - | 1 | 0 | ValueFlow | |
ValueType+Type | 0.6 | - | 0 | - | 0 | - | 8 | 0 | ||
XMLPrinter | 0.59 | 6 | 82 | 93.18 | 38 | - | 1 | 9 | tinyxml2 | |
Whitespace | 0.59 | - | 0 | - | 0 | - | 1 | 0 | tinyxml2 | |
MemPoolT<ITEM_SIZE> | 0.59 | 42 | 3 | 6.67 | 17 | - | 1 | 5 | tinyxml2 | |
Library+ArgumentChecks+IteratorInfo | 0.58 | 4 | 0 | 0 | 6 | - | 2 | 0 | ||
Suppressions+SuppressionEntry | 0.58 | 3 | 0 | 0 | 4 | - | 2 | 4 | ||
PathMatch | 0.58 | 0 | 21 | 100 | 8 | - | 5 | 4 | ||
Library+Container | 0.57 | 13 | 0 | 0 | 9 | - | 5 | 13 | ||
Filepointer+Operation | 0.56 | - | 0 | - | 0 | - | 2 | 0 | ||
OpenMode | 0.56 | - | 0 | - | 0 | - | 2 | 0 | ||
Filepointer+AppendMode | 0.56 | - | 0 | - | 0 | - | 2 | 0 | ||
DynArray<T,INITIAL_SIZE> | 0.56 | 46 | 3 | 6.12 | 21 | - | 2 | 0 | tinyxml2 | |
ImportProject+FileSettings | 0.56 | 1 | 1 | 50 | 6 | - | 4 | 7 | ||
Library+Container | 0.55 | 13 | 0 | 0 | 8 | - | 4 | 13 | ||
SHOWTIME_MODES | 0.55 | - | 0 | - | 0 | - | 4 | 0 | ||
Macro+Error | 0.54 | 2 | 1 | 33.33 | 5 | - | 2 | 5 | simplecpp | |
InternalError+Type | 0.53 | - | 0 | - | 0 | - | 1 | 0 | ||
ErrorLogger+ErrorMessage+FileLocation | 0.53 | 17 | 17 | 50 | 13 | - | 7 | 9 | ||
ImportProject+FileSettings | 0.53 | 1 | 1 | 50 | 7 | - | 4 | 7 | ||
Variables+VariableType | 0.52 | - | 0 | - | 0 | - | 3 | 0 | ||
CheckMemoryLeak+AllocType | 0.51 | - | 0 | - | 0 | - | 4 | 0 | ||
TestRegistry | 0.5 | 4 | 3 | 42.86 | 8 | - | 1 | 2 | ||
SHOWTIME_MODES | 0.49 | - | 0 | - | 0 | - | 3 | 0 | ||
Output | 0.48 | 2 | 1 | 33.33 | 6 | - | 4 | 6 | simplecpp | |
XMLAttribute+AnonymousEnum | 0.48 | - | 0 | - | 0 | - | 1 | 0 | tinyxml2 | |
Enumerator | 0.48 | 6 | 0 | 0 | 6 | - | 3 | 2 | ||
CheckClass | 0.48 | 51 | 80 | 61.07 | 75 | - | 3 | 14 | ||
Library+PlatformType | 0.46 | 8 | 0 | 0 | 13 | - | 4 | 2 | ||
ValueType+Sign | 0.46 | - | 0 | - | 0 | - | 6 | 0 | ||
Value+ValueType | 0.46 | - | 0 | - | 0 | - | 1 | 0 | ValueFlow | |
Value+ValueKind | 0.46 | - | 0 | - | 0 | - | 1 | 0 | ValueFlow | |
MemPoolT<ITEM_SIZE>+Block | 0.45 | 0 | 0 | - | 0 | - | 1 | 1 | tinyxml2 | |
MemPoolT<ITEM_SIZE>+AnonymousEnum | 0.45 | - | 0 | - | 0 | - | 1 | 0 | tinyxml2 | |
MemPoolT<ITEM_SIZE>+AnonymousEnum | 0.45 | - | 0 | - | 0 | - | 1 | 0 | tinyxml2 | |
MemPoolT<ITEM_SIZE>+Block | 0.45 | 0 | 0 | - | 0 | - | 1 | 1 | tinyxml2 | |
CWE | 0.45 | 1 | 4 | 80 | 6 | - | 6 | 0 | ||
CppCheck | 0.44 | 2 | 106 | 98.15 | 29 | - | 5 | 11 | ||
Library+ArgumentChecks | 0.44 | 8 | 0 | 0 | 4 | - | 4 | 3 | ||
Type+NeedInitialization | 0.44 | - | 0 | - | 0 | - | 6 | 0 | ||
Output+Type | 0.44 | - | 0 | - | 0 | - | 3 | 0 | simplecpp | |
Preprocessor | 0.44 | 2 | 68 | 97.14 | 26 | - | 6 | 15 | ||
MathLib+value+AnonymousEnum | 0.43 | - | 0 | - | 0 | - | 1 | 0 | ||
MathLib+value+AnonymousEnum | 0.43 | - | 0 | - | 0 | - | 1 | 0 | ||
Library+PlatformType | 0.43 | 8 | 0 | 0 | 12 | - | 3 | 2 | ||
CWE | 0.43 | 1 | 4 | 80 | 6 | - | 2 | 0 | ||
CheckOther | 0.43 | 95 | 56 | 37.09 | 102 | - | 3 | 11 | ||
Library+AllocFunc | 0.42 | 0 | 0 | - | 4 | - | 3 | 0 | ||
CheckMemoryLeak+AllocType | 0.42 | - | 0 | - | 0 | - | 5 | 0 | ||
XMLPrinter | 0.41 | 182 | 94 | 34.06 | 83 | - | 2 | 13 | tinyxml2 | |
XMLElement+AnonymousEnum | 0.41 | - | 0 | - | 0 | - | 1 | 0 | tinyxml2 | |
Dimension | 0.41 | 4 | 3 | 42.86 | 6 | - | 3 | 1 | ||
CheckMemoryLeak | 0.41 | 193 | 90 | 31.8 | 138 | - | 5 | 28 | ||
InternalError+Type | 0.4 | - | 0 | - | 0 | - | 1 | 0 | ||
Library+WarnInfo | 0.39 | 0 | 0 | - | 3 | - | 3 | 3 | ||
make_container<Cont> | 0.39 | 10 | 0 | 0 | 6 | - | 3 | 0 | ||
Token+AnonymousEnum | 0.38 | - | 0 | - | 0 | - | 1 | 0 | ||
Token+Anonymous | 0.38 | 0 | 0 | - | 1 | - | 1 | 0 | ||
Output+Type | 0.38 | - | 0 | - | 0 | - | 1 | 0 | simplecpp | |
TimerResultsIntf | 0.38 | 0 | 0 | - | 5 | - | 2 | 3 | ||
Suppressions+SuppressionEntry | 0.38 | 3 | 0 | 0 | 5 | - | 2 | 4 | ||
Preprocessor | 0.38 | 265 | 84 | 24.07 | 131 | - | 3 | 44 | ||
Scope+ScopeType | 0.36 | - | 0 | - | 0 | - | 2 | 0 | ||
LongFitsIntoSizeTMinusOne<> | 0.36 | 1 | 0 | 0 | 1 | - | 1 | 0 | tinyxml2 | |
Output+Type | 0.36 | - | 0 | - | 0 | - | 1 | 0 | simplecpp | |
Library+PodType | 0.36 | 0 | 1 | 100 | 4 | - | 3 | 0 | ||
ImportProject | 0.36 | 0 | 5 | 100 | 13 | - | 4 | 7 | ||
Suppressions | 0.36 | 0 | 43 | 100 | 13 | - | 4 | 6 | ||
Settings+Language | 0.36 | - | 0 | - | 0 | - | 2 | 0 | ||
TokenList | 0.35 | 27 | 1 | 3.57 | 37 | - | 3 | 10 | simplecpp | |
CheckLeakAutoVar | 0.35 | 8 | 16 | 66.67 | 23 | - | 2 | 13 | ||
Library+PodType | 0.35 | 0 | 1 | 100 | 1 | - | 3 | 0 | ||
CheckMemoryLeakInFunction | 0.35 | 19 | 94 | 83.19 | 20 | - | 3 | 13 | ||
Suppressions | 0.35 | 76 | 56 | 42.42 | 59 | - | 3 | 22 | ||
Library+Container+Function | 0.35 | 0 | 0 | - | 4 | - | 3 | 2 | ||
Tokenizer | 0.34 | 10 | 436 | 97.76 | 150 | - | 2 | 11 | ||
Output | 0.34 | 2 | 1 | 33.33 | 4 | - | 2 | 6 | simplecpp | |
Variable+AnonymousEnum | 0.34 | - | 0 | - | 0 | - | 1 | 0 | ||
InternalError | 0.34 | 0 | 3 | 100 | 5 | - | 1 | 5 | ||
CheckMemoryLeakInFunction | 0.33 | 1006 | 251 | 19.97 | 579 | - | 3 | 30 | ||
Type+NeedInitialization | 0.33 | - | 0 | - | 0 | - | 1 | 0 | ||
Type+BaseInfo | 0.33 | 5 | 1 | 16.67 | 5 | - | 1 | 4 | ||
FileLister | 0.33 | 46 | 48 | 51.06 | 21 | - | 4 | 10 | ||
Path | 0.33 | 2 | 98 | 98 | 23 | - | 3 | 7 | ||
Library+ArgumentChecks+MinSize | 0.33 | 3 | 0 | 0 | 2 | - | 2 | 1 | ||
Platform | 0.31 | 22 | 9 | 29.03 | 24 | - | 3 | 4 | cppcheck | |
Enumerator | 0.31 | 6 | 0 | 0 | 6 | - | 2 | 2 | ||
Library+Platform | 0.31 | 2 | 0 | 0 | 5 | - | 2 | 11 | ||
Function+Type | 0.31 | - | 0 | - | 0 | - | 2 | 0 | ||
Severity | 0.3 | 38 | 1 | 2.56 | 25 | - | 4 | 6 | ||
Library+PlatformType | 0.3 | 8 | 0 | 0 | 12 | - | 2 | 2 | ||
Library+Function | 0.3 | 9 | 0 | 0 | 3 | - | 3 | 1 | ||
AnalyzerInformation | 0.3 | 0 | 16 | 100 | 10 | - | 2 | 6 | ||
Value | 0.3 | 63 | 1 | 1.56 | 38 | - | 1 | 4 | ValueFlow | |
Token+Type | 0.3 | - | 0 | - | 0 | - | 1 | 0 | ||
Token+AnonymousEnum | 0.3 | - | 0 | - | 0 | - | 1 | 0 | ||
Token+Anonymous | 0.3 | 0 | 0 | - | 0 | - | 1 | 0 | ||
CheckMemoryLeakStructMember | 0.3 | 4 | 2 | 33.33 | 14 | - | 2 | 10 | ||
CheckMemoryLeakInClass | 0.3 | 9 | 4 | 30.77 | 17 | - | 2 | 11 | ||
ImportProject | 0.3 | 142 | 6 | 4.05 | 79 | - | 1 | 30 | ||
ProjectConfiguration | 0.3 | 9 | 0 | 0 | 10 | - | 2 | 3 | anonymous_namespace{importproject.cpp} | |
ValueType+Type | 0.29 | - | 0 | - | 0 | - | 2 | 0 | ||
PathMatch | 0.29 | 0 | 21 | 100 | 8 | - | 2 | 4 | ||
CheckMemoryLeakNoVar | 0.29 | 8 | 13 | 61.9 | 17 | - | 2 | 11 | ||
Library+ExportedFunctions | 0.29 | 4 | 0 | 0 | 7 | - | 1 | 6 | ||
ThreadExecutor | 0.29 | 111 | 24 | 17.78 | 32 | - | 3 | 26 | ||
Function+AnonymousEnum | 0.29 | - | 0 | - | 0 | - | 1 | 0 | ||
Settings+Language | 0.29 | - | 0 | - | 0 | - | 2 | 0 | ||
Token | 0.29 | 42 | 4 | 8.7 | 32 | - | 3 | 6 | simplecpp | |
AnalyzerInformation | 0.28 | 0 | 16 | 100 | 10 | - | 2 | 6 | ||
MacroUsage | 0.28 | 2 | 1 | 33.33 | 6 | - | 2 | 5 | simplecpp | |
Library | 0.28 | 49 | 21 | 30 | 96 | - | 2 | 25 | ||
CppCheckExecutor | 0.28 | 214 | 116 | 35.15 | 91 | - | 3 | 44 | ||
Token | 0.28 | 27 | 4 | 12.9 | 24 | - | 1 | 5 | simplecpp | |
Variables+ScopeGuard | 0.28 | 4 | 1 | 20 | 5 | - | 2 | 1 | ||
Variables+VariableUsage | 0.28 | 11 | 3 | 21.43 | 9 | - | 2 | 5 | ||
make_container<Cont> | 0.27 | 10 | 0 | 0 | 6 | - | 2 | 0 | ||
Dimension | 0.27 | 4 | 3 | 42.86 | 4 | - | 2 | 1 | ||
ValueType | 0.27 | 34 | 1 | 2.86 | 15 | - | 2 | 10 | ||
CheckAssert | 0.27 | 7 | 5 | 41.67 | 16 | - | 1 | 9 | ||
CheckExceptionSafety | 0.27 | 26 | 24 | 48 | 25 | - | 1 | 12 | ||
CheckVaarg | 0.27 | 11 | 5 | 31.25 | 18 | - | 1 | 9 | ||
CheckPostfixOperator | 0.27 | 8 | 9 | 52.94 | 14 | - | 1 | 9 | ||
Check64BitPortability | 0.27 | 12 | 10 | 45.45 | 17 | - | 1 | 9 | ||
MathLib | 0.27 | 3 | 21 | 87.5 | 43 | - | 1 | 7 | ||
CheckSizeof | 0.27 | 22 | 16 | 42.11 | 30 | - | 1 | 9 | ||
CheckBool | 0.27 | 23 | 19 | 45.24 | 32 | - | 1 | 9 | ||
CheckString | 0.27 | 20 | 15 | 42.86 | 27 | - | 1 | 9 | ||
CheckBoost | 0.27 | 8 | 7 | 46.67 | 14 | - | 1 | 9 | ||
ValueType+Sign | 0.27 | - | 0 | - | 0 | - | 1 | 0 | ||
Token | 0.27 | 27 | 4 | 12.9 | 23 | - | 1 | 5 | simplecpp | |
TimerResults | 0.27 | 0 | 0 | - | 8 | - | 1 | 6 | ||
ImportProject+FileSettings | 0.26 | 45 | 4 | 8.16 | 37 | - | 3 | 13 | ||
VarInfo+AllocInfo | 0.26 | 2 | 0 | 0 | 4 | - | 2 | 1 | ||
Library+Container+Function | 0.26 | 0 | 0 | - | 1 | - | 1 | 2 | ||
CheckUnusedVar | 0.26 | 14 | 13 | 48.15 | 22 | - | 1 | 10 | ||
MathLib+value+AnonymousEnum | 0.26 | - | 0 | - | 0 | - | 1 | 0 | ||
Output | 0.26 | 2 | 1 | 33.33 | 6 | - | 3 | 6 | simplecpp | |
CheckUninitVar+Alloc | 0.26 | - | 0 | - | 0 | - | 1 | 0 | ||
CheckIO+ArgumentInfo | 0.26 | 0 | 1 | 100 | 10 | - | 1 | 2 | ||
Function+AnonymousEnum | 0.25 | - | 0 | - | 0 | - | 1 | 0 | ||
XMLPrinter+AnonymousEnum | 0.25 | - | 0 | - | 0 | - | 1 | 0 | tinyxml2 | |
TokenList | 0.25 | 450 | 22 | 4.66 | 286 | - | 3 | 21 | simplecpp | |
CheckBufferOverrun+MyFileInfo+ArrayUsage | 0.25 | 0 | 0 | - | 6 | - | 2 | 1 | ||
CheckCondition | 0.25 | 27 | 20 | 42.55 | 36 | - | 1 | 9 | ||
Variable+AnonymousEnum | 0.25 | - | 0 | - | 0 | - | 1 | 0 | ||
CheckClass+Usage | 0.25 | 2 | 2 | 50 | 1 | - | 1 | 0 | ||
VarInfo+AllocInfo | 0.25 | 2 | 0 | 0 | 4 | - | 1 | 1 | ||
VarInfo | 0.25 | 12 | 1 | 7.69 | 11 | - | 1 | 6 | ||
MathLib+value | 0.25 | 187 | 3 | 1.58 | 92 | - | 2 | 11 | ||
CheckType | 0.24 | 21 | 14 | 40 | 23 | - | 1 | 11 | ||
CheckUnusedFunctions | 0.24 | 4 | 17 | 80.95 | 18 | - | 1 | 12 | ||
CheckAutoVariables | 0.24 | 18 | 15 | 45.45 | 32 | - | 1 | 9 | ||
Preprocessor+HeaderTypes | 0.24 | - | 0 | - | 0 | - | 1 | 0 | ||
Directive | 0.24 | 0 | 9 | 100 | 6 | - | 1 | 3 | ||
CmdLineParser | 0.24 | 393 | 117 | 22.94 | 174 | - | 2 | 34 | ||
Library+Container+Function | 0.24 | 0 | 0 | - | 1 | - | 1 | 2 | ||
Check+FileInfo | 0.24 | 1 | 1 | 50 | 4 | - | 1 | 4 | ||
CheckNullPointer | 0.24 | 294 | 106 | 26.5 | 251 | - | 3 | 30 | ||
TestCppcheck+ErrorLogger2 | 0.24 | 1 | 0 | 0 | 8 | - | 1 | 6 | ||
TemplateSimplifier | 0.23 | 0 | 95 | 100 | 21 | - | 1 | 10 | ||
CheckIO | 0.23 | 31 | 12 | 27.91 | 41 | - | 1 | 11 | ||
CheckUninitVar | 0.23 | 15 | 9 | 37.5 | 31 | - | 1 | 11 | ||
Library+WarnInfo | 0.23 | 0 | 0 | - | 5 | - | 2 | 3 | ||
CppCheckExecutor | 0.23 | 214 | 116 | 35.15 | 91 | - | 2 | 44 | ||
MacroUsage | 0.23 | 2 | 1 | 33.33 | 4 | - | 1 | 5 | simplecpp | |
TokenList | 0.23 | 27 | 1 | 3.57 | 37 | - | 1 | 10 | simplecpp | |
Library+Error | 0.23 | 4 | 0 | 0 | 7 | - | 2 | 2 | ||
Preprocessor+HeaderTypes | 0.23 | - | 0 | - | 0 | - | 1 | 0 | ||
Directive | 0.23 | 0 | 9 | 100 | 6 | - | 1 | 3 | ||
CheckBufferOverrun | 0.22 | 34 | 50 | 59.52 | 54 | - | 1 | 16 | ||
CheckStl | 0.22 | 48 | 54 | 52.94 | 57 | - | 1 | 11 | ||
CheckBufferOverrun+ArrayInfo | 0.22 | 8 | 13 | 61.9 | 19 | - | 1 | 5 | ||
Library+AllocFunc | 0.22 | 0 | 0 | - | 4 | - | 2 | 0 | ||
DUI | 0.22 | 0 | 0 | - | 6 | - | 1 | 2 | simplecpp | |
CppCheck | 0.22 | 2 | 106 | 98.15 | 29 | - | 2 | 11 | ||
CheckFunctions | 0.22 | 17 | 23 | 57.5 | 23 | - | 1 | 17 | ||
Library+ArgumentChecks+MinSize | 0.22 | 3 | 0 | 0 | 4 | - | 2 | 1 | ||
Timer | 0.22 | 18 | 0 | 0 | 10 | - | 2 | 7 | ||
TimerResults | 0.22 | 18 | 1 | 5.26 | 12 | - | 2 | 18 | ||
CheckNullPointer | 0.22 | 12 | 37 | 75.51 | 23 | - | 1 | 12 | ||
Type+FriendInfo | 0.22 | 3 | 0 | 0 | 6 | - | 2 | 3 | ||
TimerResultsData | 0.21 | 4 | 0 | 0 | 5 | - | 1 | 0 | ||
FileLister | 0.21 | 46 | 48 | 51.06 | 21 | - | 2 | 10 | ||
Suppressions+FileMatcher | 0.21 | 67 | 32 | 32.32 | 39 | - | 1 | 18 | ||
Directive | 0.2 | 4 | 9 | 69.23 | 6 | - | 2 | 4 | ||
Macro+invalidHashHash | 0.2 | 0 | 1 | 100 | 4 | - | 1 | 6 | simplecpp | |
Macro+wrongNumberOfParameters | 0.2 | 0 | 1 | 100 | 4 | - | 1 | 6 | simplecpp | |
Library+WarnInfo | 0.2 | 0 | 0 | - | 3 | - | 1 | 3 | ||
Library+Platform | 0.2 | 2 | 0 | 0 | 5 | - | 1 | 11 | ||
Library+ArgumentChecks+MinSize | 0.2 | 3 | 0 | 0 | 2 | - | 1 | 1 | ||
Library+Container | 0.2 | 13 | 0 | 0 | 8 | - | 1 | 13 | ||
Library+ArgumentChecks | 0.2 | 8 | 0 | 0 | 4 | - | 1 | 3 | ||
Library+AllocFunc | 0.2 | 0 | 0 | - | 4 | - | 1 | 0 | ||
Library+ExportedFunctions | 0.2 | 4 | 0 | 0 | 7 | - | 1 | 6 | ||
Library+PodType | 0.2 | 0 | 1 | 100 | 1 | - | 1 | 0 | ||
CppCheck | 0.2 | 336 | 170 | 33.6 | 143 | - | 1 | 54 | ||
ThreadExecutor+MessageType | 0.2 | - | 0 | - | 0 | - | 1 | 0 | ||
VarIdScopeInfo | 0.19 | 8 | 2 | 20 | 5 | - | 1 | 0 | anonymous_namespace{tokenize.cpp} | |
Space | 0.19 | 2 | 0 | 0 | 5 | - | 1 | 2 | ||
triplet | 0.19 | 2 | 0 | 0 | 5 | - | 1 | 2 | anonymous_namespace{tokenize.cpp} | |
TemplateSimplifier | 0.19 | 802 | 245 | 23.4 | 513 | - | 1 | 32 | ||
ThreadExecutor+MessageType | 0.19 | - | 0 | - | 0 | - | 1 | 0 | ||
TestPreprocessor+OurPreprocessor | 0.19 | 12 | 0 | 0 | 6 | - | 1 | 16 | ||
Scope+UsingInfo | 0.19 | 0 | 0 | - | 6 | - | 1 | 2 | ||
Library+Platform | 0.19 | 2 | 0 | 0 | 7 | - | 1 | 11 | ||
Library+ExportedFunctions | 0.19 | 4 | 0 | 0 | 9 | - | 1 | 6 | ||
Library+Function | 0.19 | 9 | 0 | 0 | 5 | - | 1 | 1 | ||
Library+CodeBlock | 0.19 | 9 | 0 | 0 | 13 | - | 1 | 7 | ||
Library+ArgumentChecks | 0.19 | 8 | 0 | 0 | 5 | - | 1 | 3 | ||
Library+Error | 0.19 | 4 | 0 | 0 | 7 | - | 1 | 2 | ||
ItemDefinitionGroup | 0.19 | 35 | 1 | 2.78 | 27 | - | 1 | 11 | anonymous_namespace{importproject.cpp} | |
Check | 0.18 | 23 | 20 | 46.51 | 23 | - | 1 | 13 | ||
VarInfo | 0.18 | 39 | 2 | 4.88 | 20 | - | 1 | 14 | ||
Preprocessor+HeaderTypes | 0.18 | - | 0 | - | 0 | - | 1 | 0 | ||
MacroUsage | 0.18 | 2 | 1 | 33.33 | 6 | - | 1 | 5 | simplecpp | |
DUI | 0.18 | 0 | 0 | - | 6 | - | 1 | 2 | simplecpp | |
CheckUninitVar+Alloc | 0.18 | - | 0 | - | 0 | - | 1 | 0 | ||
VariableValue | 0.18 | 2 | 0 | 0 | 6 | - | 1 | 0 | ||
Filepointer | 0.18 | 5 | 0 | 0 | 4 | - | 1 | 3 | ||
CheckIO+ArgumentInfo | 0.18 | 262 | 11 | 4.03 | 157 | - | 1 | 21 | ||
Preprocessor | 0.18 | 2 | 68 | 97.14 | 26 | - | 1 | 15 | ||
CmdLineParser | 0.18 | 393 | 117 | 22.94 | 174 | - | 1 | 34 | ||
ThreadExecutor | 0.18 | 111 | 24 | 17.78 | 32 | - | 1 | 26 | ||
CheckBufferOverrun+MyFileInfo | 0.18 | 6 | 1 | 14.29 | 9 | - | 1 | 15 | ||
CheckBufferOverrun+ArrayInfo | 0.18 | 44 | 20 | 31.25 | 28 | - | 1 | 9 | ||
Location | 0.18 | 3 | 0 | 0 | 7 | - | 1 | 4 | anonymous_namespace{checkunusedfunctions .cpp} | |
CheckUnusedFunctions+FunctionUsage | 0.18 | 3 | 0 | 0 | 6 | - | 1 | 1 | ||
CheckUnusedFunctions+FunctionDecl | 0.18 | 2 | 0 | 0 | 6 | - | 1 | 4 | ||
CheckClass+Usage | 0.17 | 2 | 2 | 50 | 6 | - | 1 | 0 | ||
VarInfo | 0.17 | 2 | 1 | 33.33 | 4 | - | 1 | 2 | anonymous_namespace{checkclass.cpp} | |
Type+FriendInfo | 0.17 | 3 | 0 | 0 | 4 | - | 1 | 3 | ||
CheckUnusedFunctions | 0.17 | 202 | 38 | 15.83 | 139 | - | 1 | 45 | ||
Settings+Rule | 0.17 | 3 | 4 | 57.14 | 6 | - | 1 | 3 | ||
AnalyzerInformation | 0.17 | 58 | 16 | 21.62 | 30 | - | 1 | 22 | ||
CheckUninitVar+MyFileInfo | 0.15 | 0 | 1 | 100 | 4 | - | 0 | 2 | ||
CheckUninitVar | 0.15 | 656 | 107 | 14.02 | 546 | - | 0 | 38 | ||
CheckSizeof | 0.15 | 198 | 48 | 19.51 | 168 | - | 0 | 16 | ||
CheckStl | 0.15 | 845 | 186 | 18.04 | 609 | - | 0 | 42 | ||
CheckType | 0.15 | 200 | 46 | 18.7 | 155 | - | 0 | 29 | ||
PathMatch | 0.15 | 30 | 31 | 50.82 | 24 | - | 0 | 12 | ||
CheckVaarg | 0.15 | 88 | 14 | 13.73 | 69 | - | 0 | 22 | ||
CheckUnusedVar | 0.15 | 430 | 101 | 19.02 | 340 | - | 0 | 45 | ||
CheckMemoryLeakInClass | 0.15 | 103 | 33 | 24.26 | 78 | - | 0 | 26 | ||
ProgramMemory | 0.15 | 16 | 0 | 0 | 18 | - | 0 | 8 | anonymous_namespace{valueflow.cpp} | |
AST_state | 0.15 | 4 | 1 | 20 | 5 | - | 0 | 1 | ||
CheckBufferOverrun | 0.15 | 924 | 275 | 22.94 | 581 | - | 0 | 43 | ||
CheckBoost | 0.15 | 26 | 7 | 21.21 | 24 | - | 0 | 13 | ||
CheckCondition | 0.15 | 532 | 84 | 13.64 | 410 | - | 0 | 36 | ||
CheckClass | 0.15 | 1102 | 377 | 25.49 | 804 | - | 0 | 48 | ||
CheckAssert | 0.15 | 59 | 15 | 20.27 | 55 | - | 0 | 15 | ||
Check64BitPortability | 0.15 | 59 | 18 | 23.38 | 60 | - | 0 | 17 | ||
CheckBool | 0.15 | 223 | 41 | 15.53 | 170 | - | 0 | 22 | ||
CheckAutoVariables | 0.15 | 212 | 51 | 19.39 | 185 | - | 0 | 23 | ||
CheckOther | 0.15 | 1496 | 369 | 19.79 | 1125 | - | 0 | 46 | ||
CheckMemoryLeakStructMember | 0.15 | 110 | 32 | 22.54 | 80 | - | 0 | 15 | ||
CheckLeakAutoVar | 0.15 | 320 | 64 | 16.67 | 205 | - | 0 | 36 | ||
CheckPostfixOperator | 0.15 | 27 | 13 | 32.5 | 30 | - | 0 | 14 | ||
CheckMemoryLeakNoVar | 0.15 | 75 | 39 | 34.21 | 70 | - | 0 | 17 | ||
CheckString | 0.15 | 195 | 44 | 18.41 | 141 | - | 0 | 17 | ||
CheckFunctions | 0.15 | 162 | 45 | 21.74 | 150 | - | 0 | 30 | ||
CheckIO | 0.15 | 1188 | 64 | 5.11 | 801 | - | 0 | 40 | ||
CheckExceptionSafety | 0.15 | 137 | 71 | 34.13 | 99 | - | 0 | 23 | ||
XMLConstHandle | 0.15 | 18 | 4 | 18.18 | 30 | - | 0 | 5 | tinyxml2 | |
XMLHandle | 0.15 | 18 | 72 | 80 | 30 | - | 0 | 5 | tinyxml2 | |
XMLElement+AnonymousEnum | 0.15 | - | 0 | - | 0 | - | 0 | 0 | tinyxml2 | |
TestCharVar | 0.15 | 54 | 5 | 8.47 | 13 | - | 0 | 11 | ||
TestBufferOverrun | 0.15 | 1009 | 239 | 19.15 | 282 | - | 0 | 15 | ||
XMLPrinter+AnonymousEnum | 0.15 | - | 0 | - | 0 | - | 0 | 0 | tinyxml2 | |
StrPair+AnonymousEnum | 0.15 | - | 0 | - | 0 | - | 0 | 0 | tinyxml2 | |
CheckBufferOverrun+MyFileInfo+ArrayUsage | 0.15 | 0 | 0 | - | 3 | - | 0 | 1 | ||
CheckBufferOverrun+MyFileInfo | 0.15 | 0 | 1 | 100 | 5 | - | 0 | 5 | ||
XMLElement+AnonymousEnum | 0.15 | - | 0 | - | 0 | - | 0 | 0 | tinyxml2 | |
XMLAttribute+AnonymousEnum | 0.15 | - | 0 | - | 0 | - | 0 | 0 | tinyxml2 | |
XMLUtil | 0.15 | 22 | 10 | 31.25 | 33 | - | 0 | 0 | tinyxml2 | |
TestGarbage | 0.15 | 591 | 338 | 36.38 | 371 | - | 0 | 16 | ||
TestFileLister | 0.15 | 21 | 5 | 19.23 | 13 | - | 0 | 17 | ||
TestExceptionSafety | 0.15 | 93 | 11 | 10.58 | 41 | - | 0 | 9 | ||
TestLeakAutoVar | 0.15 | 328 | 78 | 19.21 | 134 | - | 0 | 10 | ||
TestIO | 0.15 | 975 | 83 | 7.84 | 62 | - | 0 | 14 | ||
TestIncompleteStatement | 0.15 | 77 | 19 | 19.79 | 43 | - | 0 | 9 | ||
TestCondition | 0.15 | 568 | 115 | 16.84 | 70 | - | 0 | 11 | ||
TestCmdlineParser | 0.15 | 627 | 45 | 6.7 | 192 | - | 0 | 18 | ||
TestClass | 0.15 | 1349 | 343 | 20.27 | 301 | - | 0 | 11 | ||
TestErrorLogger | 0.15 | 229 | 14 | 5.76 | 51 | - | 0 | 14 | ||
TestCppcheck | 0.15 | 25 | 6 | 19.35 | 19 | - | 0 | 13 | ||
TestConstructors | 0.15 | 600 | 165 | 21.57 | 255 | - | 0 | 9 | ||
Library+CodeBlock | 0.15 | 9 | 0 | 0 | 12 | - | 0 | 7 | ||
Library+Function | 0.15 | 9 | 0 | 0 | 3 | - | 0 | 1 | ||
Severity | 0.15 | 38 | 1 | 2.56 | 25 | - | 0 | 6 | ||
IMAGEHLP_SYMBOL64_EXT | 0.15 | 0 | 0 | - | 3 | - | 0 | 1 | anonymous_namespace{cppcheckexecutor .cpp} | |
make_container<Cont> | 0.15 | 10 | 0 | 0 | 6 | - | 0 | 0 | ||
DUI | 0.15 | 0 | 0 | - | 3 | - | 0 | 2 | simplecpp | |
TimerResultsData | 0.15 | 4 | 0 | 0 | 3 | - | 0 | 0 | ||
MathLib+value | 0.15 | 3 | 1 | 25 | 14 | - | 0 | 4 | ||
MathLib | 0.15 | 3 | 21 | 87.5 | 43 | - | 0 | 7 | ||
Suppressions+FileMatcher | 0.15 | 0 | 24 | 100 | 10 | - | 0 | 4 | ||
Settings+Rule | 0.15 | 3 | 4 | 57.14 | 6 | - | 0 | 3 | ||
Timer | 0.15 | 0 | 0 | - | 5 | - | 0 | 4 | ||
TestAssert | 0.15 | 49 | 4 | 7.55 | 15 | - | 0 | 9 | ||
Test64BitPortability | 0.15 | 65 | 12 | 15.58 | 19 | - | 0 | 9 | ||
IMAGEHLP_SYMBOL64_EXT | 0.15 | 0 | 0 | - | 3 | - | 0 | 1 | anonymous_namespace{cppcheckexecutor .cpp} | |
TestBoost | 0.15 | 22 | 6 | 21.43 | 9 | - | 0 | 9 | ||
TestBool | 0.15 | 289 | 33 | 10.25 | 53 | - | 0 | 9 | ||
TestAutoVariables | 0.15 | 297 | 69 | 18.85 | 101 | - | 0 | 12 | ||
Severity | 0.15 | 38 | 1 | 2.56 | 25 | - | 0 | 6 | ||
Suppressions+FileMatcher | 0.15 | 0 | 24 | 100 | 10 | - | 0 | 4 | ||
MathLib+value | 0.15 | 3 | 1 | 25 | 14 | - | 0 | 4 | ||
Settings+Rule | 0.15 | 3 | 4 | 57.14 | 6 | - | 0 | 3 | ||
Timer | 0.15 | 0 | 0 | - | 5 | - | 0 | 4 | ||
Library+CodeBlock | 0.15 | 9 | 0 | 0 | 12 | - | 0 | 7 | ||
TestTokenList | 0.15 | 46 | 10 | 17.86 | 22 | - | 0 | 13 | ||
TestTokenizer | 0.15 | 2750 | 789 | 22.29 | 749 | - | 0 | 30 | ||
TestToken | 0.15 | 583 | 26 | 4.27 | 123 | - | 0 | 17 | ||
TestUninitVar | 0.15 | 944 | 256 | 21.33 | 91 | - | 0 | 14 | ||
CheckUninitVar+MyFileInfo | 0.15 | 0 | 1 | 100 | 4 | - | 0 | 2 | ||
TestType | 0.15 | 85 | 16 | 15.84 | 24 | - | 0 | 12 | ||
TestSuppressions | 0.15 | 169 | 37 | 17.96 | 45 | - | 0 | 21 | ||
TestString | 0.15 | 168 | 22 | 11.58 | 31 | - | 0 | 9 | ||
TestStl | 0.15 | 745 | 132 | 15.05 | 171 | - | 0 | 15 | ||
TestTimer | 0.15 | 6 | 0 | 0 | 8 | - | 0 | 2 | ||
TestThreadExecutor | 0.15 | 34 | 5 | 12.82 | 26 | - | 0 | 19 | ||
TestSymbolDatabase | 0.15 | 2472 | 266 | 9.72 | 628 | - | 0 | 48 | ||
Macro | 0.15 | 400 | 61 | 13.23 | 212 | - | 0 | 22 | simplecpp | |
TestVarID | 0.15 | 602 | 144 | 19.3 | 286 | - | 0 | 16 | ||
TestValueFlow | 0.15 | 774 | 210 | 21.34 | 103 | - | 0 | 20 | ||
LongFitsIntoSizeTMinusOne<false> | 0.15 | 1 | 0 | 0 | 1 | - | 0 | 0 | tinyxml2 | |
XMLConstHandle | 0.15 | 18 | 4 | 18.18 | 30 | - | 0 | 5 | tinyxml2 | |
XMLHandle | 0.15 | 18 | 72 | 80 | 30 | - | 0 | 5 | tinyxml2 | |
TestUnusedFunctions | 0.15 | 135 | 17 | 11.18 | 52 | - | 0 | 12 | ||
CheckUnusedFunctions+FunctionDecl | 0.15 | 0 | 0 | - | 6 | - | 0 | 1 | ||
CheckUnusedFunctions+FunctionUsage | 0.15 | 3 | 0 | 0 | 6 | - | 0 | 1 | ||
TestVaarg | 0.15 | 66 | 11 | 14.29 | 19 | - | 0 | 9 | ||
TestUnusedVar | 0.15 | 991 | 211 | 17.55 | 276 | - | 0 | 10 | ||
TestUnusedPrivateFunction | 0.15 | 131 | 41 | 23.84 | 67 | - | 0 | 11 | ||
TestMemleakNoVar | 0.15 | 79 | 12 | 13.19 | 14 | - | 0 | 13 | ||
TestMemleakStructMember | 0.15 | 103 | 34 | 24.82 | 49 | - | 0 | 12 | ||
TestMemleakInClass | 0.15 | 170 | 27 | 13.71 | 68 | - | 0 | 12 | ||
TestNullPointer | 0.15 | 649 | 187 | 22.37 | 110 | - | 0 | 17 | ||
TestMemleakWindows | 0.15 | 22 | 4 | 15.38 | 14 | - | 0 | 12 | ||
TestMemleakGLib | 0.15 | 38 | 6 | 13.64 | 11 | - | 0 | 20 | ||
TestMathLib | 0.15 | 876 | 132 | 13.1 | 70 | - | 0 | 9 | ||
TestLibrary | 0.15 | 318 | 18 | 5.36 | 57 | - | 0 | 31 | ||
TestLeakAutoVarWindows | 0.15 | 19 | 3 | 13.64 | 10 | - | 0 | 12 | ||
TestMemleakInFunction | 0.15 | 1020 | 211 | 17.14 | 351 | - | 0 | 22 | ||
TestMemleak | 0.15 | 24 | 4 | 14.29 | 11 | - | 0 | 14 | ||
Scope+UsingInfo | 0.15 | 0 | 0 | - | 0 | - | 0 | 2 | ||
TestSimplifyTemplate | 0.15 | 346 | 135 | 28.07 | 146 | - | 0 | 14 | ||
TestSamples | 0.15 | 28 | 3 | 9.68 | 14 | - | 0 | 23 | ||
TestPreprocessor | 0.15 | 772 | 169 | 17.96 | 297 | - | 0 | 26 | ||
TestSizeof | 0.15 | 240 | 18 | 6.98 | 27 | - | 0 | 9 | ||
TestSimplifyTypedef | 0.15 | 822 | 277 | 25.2 | 262 | - | 0 | 14 | ||
TestSimplifyTokens | 0.15 | 1179 | 135 | 10.27 | 226 | - | 0 | 17 | ||
TestOther | 0.15 | 1644 | 222 | 11.9 | 272 | - | 0 | 22 | ||
TestOptions | 0.15 | 29 | 0 | 0 | 20 | - | 0 | 2 | ||
TestFunctions | 0.15 | 236 | 56 | 19.18 | 57 | - | 0 | 16 | ||
TestPostfixOperator | 0.15 | 71 | 5 | 6.58 | 25 | - | 0 | 9 | ||
TestPathMatch | 0.15 | 78 | 4 | 4.88 | 60 | - | 0 | 7 | ||
TestPath | 0.15 | 102 | 8 | 7.27 | 22 | - | 0 | 7 |
Types Metrics : Code Members and Inheritance
Type Name | # Instance Methods | Nb Static Methods | # Fields | # Children Classes | Depth Of Inheritance Tree | Type Namespace |
---|---|---|---|---|---|---|
Token | 140 | 21 | 18 | 0 | 0 | |
Settings | 12 | 2 | 42 | 0 | 1 | |
Token | 140 | 21 | 18 | 0 | 0 | |
Tokenizer | 138 | 12 | 9 | 0 | 0 | |
TestFixture | 23 | 1 | 9 | 59 | 1 | |
StrPair+AnonymousEnum | - | - | - | - | - | tinyxml2 |
ErrorLogger | 9 | 2 | 0 | 64 | 0 | |
XMLDocument | 39 | 1 | 14 | 0 | 1 | tinyxml2 |
StrPair | 14 | 0 | 3 | 0 | 0 | tinyxml2 |
XMLVisitor | 10 | 0 | 0 | 1 | 0 | tinyxml2 |
XMLNode | 55 | 1 | 10 | 6 | 0 | tinyxml2 |
Scope | 30 | 0 | 21 | 0 | 0 | |
XMLUtil | 0 | 22 | 0 | 0 | 0 | tinyxml2 |
Check | 17 | 2 | 4 | 27 | 0 | |
XMLNode | 55 | 1 | 10 | 6 | 0 | tinyxml2 |
Severity+SeverityType | - | - | - | - | - | |
Library | 70 | 5 | 24 | 0 | 0 | |
XMLError | - | - | - | - | - | tinyxml2 |
XMLDocument | 39 | 1 | 14 | 0 | 1 | tinyxml2 |
Severity+SeverityType | - | - | - | - | - | |
Variable | 53 | 0 | 9 | 0 | 0 | |
StrPair | 14 | 0 | 3 | 0 | 0 | tinyxml2 |
StrPair+AnonymousEnum | - | - | - | - | - | tinyxml2 |
Library+ErrorCode | - | - | - | - | - | |
XMLElement | 66 | 1 | 2 | 0 | 1 | tinyxml2 |
Settings | 12 | 2 | 42 | 0 | 1 | |
XMLDeclaration | 10 | 0 | 0 | 0 | 1 | tinyxml2 |
XMLText | 12 | 0 | 1 | 0 | 1 | tinyxml2 |
XMLUnknown | 10 | 0 | 0 | 0 | 1 | tinyxml2 |
XMLElement | 66 | 1 | 2 | 0 | 1 | tinyxml2 |
Scope | 30 | 0 | 21 | 0 | 0 | |
XMLVisitor | 12 | 0 | 0 | 1 | 0 | tinyxml2 |
Platform+PlatformType | - | - | - | - | - | cppcheck |
ErrorLogger+ErrorMessage | 18 | 4 | 8 | 0 | 0 | |
TokenList | 25 | 2 | 6 | 0 | 0 | |
XMLComment | 10 | 0 | 0 | 0 | 1 | tinyxml2 |
XMLError | - | - | - | - | - | tinyxml2 |
XMLAttribute | 29 | 0 | 5 | 0 | 0 | tinyxml2 |
Type | 16 | 0 | 6 | 0 | 0 | |
XMLText | 12 | 0 | 1 | 0 | 1 | tinyxml2 |
Platform | 10 | 2 | 18 | 1 | 0 | cppcheck |
Tokenizer | 138 | 12 | 9 | 0 | 0 | |
MemPool | 8 | 0 | 0 | 1 | 0 | tinyxml2 |
Function | 61 | 1 | 15 | 0 | 0 | |
ErrorLogger | 9 | 2 | 0 | 1 | 0 | |
MemPoolT<ITEM_SIZE>+Item | 0 | 0 | 2 | - | - | tinyxml2 |
MemPoolT<ITEM_SIZE>+Item | 0 | 0 | 2 | - | - | tinyxml2 |
SymbolDatabase | 47 | 1 | 9 | 0 | 0 | |
Token | 140 | 21 | 18 | 0 | 0 | |
XMLDeclaration | 10 | 0 | 0 | 0 | 1 | tinyxml2 |
XMLUnknown | 10 | 0 | 0 | 0 | 1 | tinyxml2 |
Location | 8 | 0 | 4 | 0 | 0 | simplecpp |
MemPool | 9 | 0 | 0 | 1 | 0 | tinyxml2 |
Value+MoveKind | - | - | - | - | - | ValueFlow |
Library+Error | 6 | 0 | 2 | 0 | 0 | |
Severity+SeverityType | - | - | - | - | - | |
Check | 17 | 2 | 4 | 27 | 0 | |
VarInfo+AllocStatus | - | - | - | - | - | |
ErrorLogger+ErrorMessage+FileLocation | 11 | 0 | 2 | 0 | 0 | |
Library+ArgumentChecks+MinSize+Type | - | - | - | - | - | |
Value | 17 | 1 | 12 | 0 | 0 | ValueFlow |
Type | 16 | 0 | 6 | 0 | 0 | |
Check+FileInfo | 4 | 0 | 0 | 2 | 0 | |
Variables | 26 | 0 | 3 | 0 | 0 | |
Library+ArgumentChecks+MinSize+Type | - | - | - | - | - | |
Suppressions+SuppressionEntry | 4 | 0 | 3 | - | - | |
VarInfo+AllocStatus | - | - | - | - | - | |
Library | 70 | 5 | 24 | 0 | 0 | |
Library+ArgumentChecks+MinSize+Type | - | - | - | - | - | |
Scope+ScopeType | - | - | - | - | - | |
XMLComment | 10 | 0 | 0 | 0 | 1 | tinyxml2 |
MathLib | 6 | 37 | 0 | 0 | 0 | |
XMLAttribute | 29 | 0 | 5 | 0 | 0 | tinyxml2 |
AccessControl | - | - | - | - | - | |
SHOWTIME_MODES | - | - | - | - | - | |
InternalError | 5 | 0 | 3 | - | - | |
InternalError | 5 | 0 | 3 | - | - | |
Settings | 12 | 2 | 42 | 0 | 1 | |
options | 7 | 0 | 3 | 0 | 0 | |
Entity | 0 | 0 | 3 | - | - | tinyxml2 |
Location | 8 | 0 | 4 | 0 | 0 | simplecpp |
Library+Container+Yield | - | - | - | - | - | |
ValueType | 11 | 2 | 7 | 0 | 0 | |
Check+FileInfo | 4 | 0 | 0 | 2 | 0 | |
Token+Type | - | - | - | - | - | |
Library+Container+Action | - | - | - | - | - | |
Location | 8 | 0 | 4 | 0 | 0 | simplecpp |
Suppressions | 13 | 0 | 1 | 0 | 0 | |
Path | 6 | 17 | 0 | 0 | 0 | |
Value | 17 | 1 | 12 | 0 | 0 | ValueFlow |
StrPair+AnonymousEnum | - | - | - | - | - | tinyxml2 |
Token+Type | - | - | - | - | - | |
AccessControl | - | - | - | - | - | |
CWE | 6 | 0 | 1 | - | - | |
Library+Container+Yield | - | - | - | - | - | |
Library+Container+Action | - | - | - | - | - | |
Platform+PlatformType | - | - | - | - | - | cppcheck |
Value+ValueType | - | - | - | - | - | ValueFlow |
Value+MoveKind | - | - | - | - | - | ValueFlow |
Token+AnonymousEnum | - | - | - | - | - | |
Token+Anonymous | 0 | 0 | 4 | - | - | |
TimerResults | 8 | 0 | 1 | 0 | 1 | |
ImportProject | 13 | 0 | 1 | 0 | 0 | |
ErrorLogger+ErrorMessage | 18 | 4 | 8 | 0 | 0 | |
Library+Container+Yield | - | - | - | - | - | |
Library+Container+Action | - | - | - | - | - | |
Settings+Language | - | - | - | - | - | |
Value+ValueType | - | - | - | - | - | ValueFlow |
Function | 61 | 1 | 15 | 0 | 0 | |
Platform | 10 | 2 | 18 | 1 | 0 | cppcheck |
ErrorLogger+ErrorMessage | 18 | 4 | 8 | 0 | 0 | |
Library+ErrorCode | - | - | - | - | - | |
Library+ErrorCode | - | - | - | - | - | |
TokenList | 25 | 2 | 6 | 0 | 0 | |
Library+ArgumentChecks+IteratorInfo | 6 | 0 | 4 | 0 | 0 | |
Variable | 53 | 0 | 9 | 0 | 0 | |
XMLElement+AnonymousEnum | - | - | - | - | - | tinyxml2 |
SymbolDatabase | 47 | 1 | 9 | 0 | 0 | |
TimerResultsIntf | 5 | 0 | 0 | 1 | 0 | |
TokenList | 25 | 2 | 6 | 0 | 0 | |
TimerResultsData | 3 | 0 | 2 | - | - | |
Value+ValueKind | - | - | - | - | - | ValueFlow |
Whitespace | - | - | - | - | - | tinyxml2 |
Type+BaseInfo | 7 | 0 | 5 | 0 | 0 | |
CheckMemoryLeak | 20 | 1 | 3 | 4 | 0 | |
Path | 6 | 17 | 0 | 0 | 0 | |
InternalError+Type | - | - | - | - | - | |
Platform+PlatformType | - | - | - | - | - | cppcheck |
TimerResultsIntf | 5 | 0 | 0 | 1 | 0 | |
MemPoolT<ITEM_SIZE> | 12 | 0 | 6 | 0 | 1 | tinyxml2 |
ErrorLogger+ErrorMessage+FileLocation | 11 | 0 | 2 | 0 | 0 | |
DynArray<T,INITIAL_SIZE> | 18 | 0 | 4 | 0 | 0 | tinyxml2 |
Value+MoveKind | - | - | - | - | - | ValueFlow |
ErrorLogger | 9 | 2 | 0 | 3 | 0 | |
Function+Type | - | - | - | - | - | |
Library+ArgumentChecks+IteratorInfo | 6 | 0 | 4 | 0 | 0 | |
Value+ValueKind | - | - | - | - | - | ValueFlow |
ValueType+Type | - | - | - | - | - | |
XMLPrinter | 38 | 0 | 11 | 0 | 1 | tinyxml2 |
Whitespace | - | - | - | - | - | tinyxml2 |
MemPoolT<ITEM_SIZE> | 12 | 0 | 6 | 0 | 1 | tinyxml2 |
Library+ArgumentChecks+IteratorInfo | 6 | 0 | 4 | 0 | 0 | |
Suppressions+SuppressionEntry | 4 | 0 | 3 | - | - | |
PathMatch | 7 | 1 | 3 | 0 | 0 | |
Library+Container | 7 | 0 | 9 | 0 | 0 | |
Filepointer+Operation | - | - | - | - | - | |
OpenMode | - | - | - | - | - | |
Filepointer+AppendMode | - | - | - | - | - | |
DynArray<T,INITIAL_SIZE> | 18 | 0 | 4 | 0 | 0 | tinyxml2 |
ImportProject+FileSettings | 6 | 0 | 6 | - | - | |
Library+Container | 6 | 0 | 9 | 0 | 0 | |
SHOWTIME_MODES | - | - | - | - | - | |
Macro+Error | 5 | 0 | 2 | - | - | simplecpp |
InternalError+Type | - | - | - | - | - | |
ErrorLogger+ErrorMessage+FileLocation | 11 | 0 | 2 | 0 | 0 | |
ImportProject+FileSettings | 7 | 0 | 6 | - | - | |
Variables+VariableType | - | - | - | - | - | |
CheckMemoryLeak+AllocType | - | - | - | - | - | |
TestRegistry | 7 | 1 | 1 | 0 | 0 | |
SHOWTIME_MODES | - | - | - | - | - | |
Output | 6 | 0 | 3 | - | - | simplecpp |
XMLAttribute+AnonymousEnum | - | - | - | - | - | tinyxml2 |
Enumerator | 6 | 0 | 6 | 0 | 0 | |
CheckClass | 64 | 9 | 1 | 0 | 1 | |
Library+PlatformType | 7 | 0 | 7 | - | - | |
ValueType+Sign | - | - | - | - | - | |
Value+ValueType | - | - | - | - | - | ValueFlow |
Value+ValueKind | - | - | - | - | - | ValueFlow |
MemPoolT<ITEM_SIZE>+Block | 0 | 0 | 1 | - | - | tinyxml2 |
MemPoolT<ITEM_SIZE>+AnonymousEnum | - | - | - | - | - | tinyxml2 |
MemPoolT<ITEM_SIZE>+AnonymousEnum | - | - | - | - | - | tinyxml2 |
MemPoolT<ITEM_SIZE>+Block | 0 | 0 | 1 | - | - | tinyxml2 |
CWE | 6 | 0 | 1 | - | - | |
CppCheck | 27 | 2 | 10 | 0 | 1 | |
Library+ArgumentChecks | 4 | 0 | 10 | 0 | 0 | |
Type+NeedInitialization | - | - | - | - | - | |
Output+Type | - | - | - | - | - | simplecpp |
Preprocessor | 23 | 3 | 8 | 1 | 0 | |
MathLib+value+AnonymousEnum | - | - | - | - | - | |
MathLib+value+AnonymousEnum | - | - | - | - | - | |
Library+PlatformType | 6 | 0 | 7 | - | - | |
CWE | 6 | 0 | 1 | - | - | |
CheckOther | 99 | 3 | 0 | 0 | 1 | |
Library+AllocFunc | 4 | 0 | 2 | - | - | |
CheckMemoryLeak+AllocType | - | - | - | - | - | |
XMLPrinter | 39 | 0 | 11 | 0 | 1 | tinyxml2 |
XMLElement+AnonymousEnum | - | - | - | - | - | tinyxml2 |
Dimension | 6 | 0 | 4 | - | - | |
CheckMemoryLeak | 20 | 1 | 3 | 4 | 0 | |
InternalError+Type | - | - | - | - | - | |
Library+WarnInfo | 3 | 0 | 3 | - | - | |
make_container<Cont> | 5 | 0 | 1 | 0 | 0 | |
Token+AnonymousEnum | - | - | - | - | - | |
Token+Anonymous | 1 | 0 | 4 | - | - | |
Output+Type | - | - | - | - | - | simplecpp |
TimerResultsIntf | 5 | 0 | 0 | 1 | 0 | |
Suppressions+SuppressionEntry | 5 | 0 | 3 | - | - | |
Preprocessor | 23 | 3 | 8 | 0 | 0 | |
Scope+ScopeType | - | - | - | - | - | |
LongFitsIntoSizeTMinusOne<> | 0 | 1 | 0 | - | - | tinyxml2 |
Output+Type | - | - | - | - | - | simplecpp |
Library+PodType | 4 | 0 | 2 | - | - | |
ImportProject | 13 | 0 | 1 | 0 | 0 | |
Suppressions | 13 | 0 | 1 | 0 | 0 | |
Settings+Language | - | - | - | - | - | |
TokenList | 30 | 0 | 4 | 0 | 0 | simplecpp |
CheckLeakAutoVar | 22 | 1 | 0 | 0 | 1 | |
Library+PodType | 1 | 0 | 2 | - | - | |
CheckMemoryLeakInFunction | 16 | 3 | 1 | 0 | 1 | |
Suppressions | 13 | 0 | 1 | 0 | 0 | |
Library+Container+Function | 4 | 0 | 2 | - | - | |
Tokenizer | 138 | 12 | 9 | 0 | 0 | |
Output | 4 | 0 | 3 | - | - | simplecpp |
Variable+AnonymousEnum | - | - | - | - | - | |
InternalError | 5 | 0 | 3 | - | - | |
CheckMemoryLeakInFunction | 16 | 3 | 1 | 0 | 1 | |
Type+NeedInitialization | - | - | - | - | - | |
Type+BaseInfo | 5 | 0 | 5 | 0 | 0 | |
FileLister | 0 | 5 | 0 | 0 | 0 | |
Path | 6 | 17 | 0 | 0 | 0 | |
Library+ArgumentChecks+MinSize | 2 | 0 | 3 | 0 | 0 | |
Platform | 10 | 2 | 18 | 1 | 0 | cppcheck |
Enumerator | 6 | 0 | 6 | 0 | 0 | |
Library+Platform | 4 | 0 | 1 | - | - | |
Function+Type | - | - | - | - | - | |
Severity | 6 | 2 | 0 | 0 | 0 | |
Library+PlatformType | 6 | 0 | 7 | - | - | |
Library+Function | 3 | 0 | 10 | - | - | |
AnalyzerInformation | 8 | 2 | 2 | 0 | 0 | |
Value | 17 | 1 | 12 | 0 | 0 | ValueFlow |
Token+Type | - | - | - | - | - | |
Token+AnonymousEnum | - | - | - | - | - | |
Token+Anonymous | 0 | 0 | 4 | - | - | |
CheckMemoryLeakStructMember | 12 | 2 | 0 | 0 | 1 | |
CheckMemoryLeakInClass | 15 | 1 | 0 | 0 | 1 | |
ImportProject | 13 | 0 | 1 | 0 | 0 | |
ProjectConfiguration | 5 | 0 | 3 | - | - | anonymous_namespace{importproject.cpp} |
ValueType+Type | - | - | - | - | - | |
PathMatch | 7 | 1 | 3 | 0 | 0 | |
CheckMemoryLeakNoVar | 16 | 1 | 0 | 0 | 1 | |
Library+ExportedFunctions | 7 | 0 | 2 | 0 | 0 | |
ThreadExecutor | 10 | 2 | 15 | 0 | 1 | |
Function+AnonymousEnum | - | - | - | - | - | |
Settings+Language | - | - | - | - | - | |
Token | 13 | 0 | 10 | 0 | 0 | simplecpp |
AnalyzerInformation | 8 | 2 | 2 | 0 | 0 | |
MacroUsage | 6 | 0 | 3 | - | - | simplecpp |
Library | 70 | 5 | 24 | 0 | 0 | |
CppCheckExecutor | 13 | 4 | 6 | 0 | 1 | |
Token | 13 | 0 | 10 | 0 | 0 | simplecpp |
Variables+ScopeGuard | 5 | 0 | 2 | 0 | 0 | |
Variables+VariableUsage | 7 | 0 | 9 | 0 | 0 | |
make_container<Cont> | 5 | 0 | 1 | 0 | 0 | |
Dimension | 4 | 0 | 4 | - | - | |
ValueType | 11 | 2 | 7 | 0 | 0 | |
CheckAssert | 14 | 2 | 0 | 0 | 1 | |
CheckExceptionSafety | 22 | 1 | 0 | 0 | 1 | |
CheckVaarg | 17 | 1 | 0 | 0 | 1 | |
CheckPostfixOperator | 12 | 1 | 0 | 0 | 1 | |
Check64BitPortability | 16 | 1 | 0 | 0 | 1 | |
MathLib | 6 | 37 | 0 | 0 | 0 | |
CheckSizeof | 29 | 1 | 0 | 0 | 1 | |
CheckBool | 31 | 1 | 0 | 0 | 1 | |
CheckString | 26 | 1 | 0 | 0 | 1 | |
CheckBoost | 12 | 1 | 0 | 0 | 1 | |
ValueType+Sign | - | - | - | - | - | |
Token | 12 | 0 | 10 | 0 | 0 | simplecpp |
TimerResults | 8 | 0 | 1 | 0 | 1 | |
ImportProject+FileSettings | 8 | 0 | 6 | - | - | |
VarInfo+AllocInfo | 4 | 0 | 2 | - | - | |
Library+Container+Function | 1 | 0 | 2 | - | - | |
CheckUnusedVar | 21 | 1 | 2 | 0 | 1 | |
MathLib+value+AnonymousEnum | - | - | - | - | - | |
Output | 6 | 0 | 3 | - | - | simplecpp |
CheckUninitVar+Alloc | - | - | - | - | - | |
CheckIO+ArgumentInfo | 10 | 0 | 8 | 0 | 0 | |
Function+AnonymousEnum | - | - | - | - | - | |
XMLPrinter+AnonymousEnum | - | - | - | - | - | tinyxml2 |
TokenList | 30 | 0 | 4 | 0 | 0 | simplecpp |
CheckBufferOverrun+MyFileInfo+ArrayUsage | 6 | 0 | 3 | - | - | |
CheckCondition | 35 | 1 | 0 | 0 | 1 | |
Variable+AnonymousEnum | - | - | - | - | - | |
CheckClass+Usage | 1 | 0 | 2 | - | - | |
VarInfo+AllocInfo | 4 | 0 | 2 | - | - | |
VarInfo | 11 | 0 | 4 | 0 | 0 | |
MathLib+value | 12 | 1 | 4 | 0 | 0 | |
CheckType | 22 | 1 | 0 | 0 | 1 | |
CheckUnusedFunctions | 15 | 3 | 4 | 0 | 1 | |
CheckAutoVariables | 24 | 8 | 0 | 0 | 1 | |
Preprocessor+HeaderTypes | - | - | - | - | - | |
Directive | 6 | 0 | 3 | 0 | 0 | |
CmdLineParser | 12 | 3 | 7 | 0 | 0 | |
Library+Container+Function | 1 | 0 | 2 | - | - | |
Check+FileInfo | 4 | 0 | 0 | 0 | 0 | |
CheckNullPointer | 20 | 3 | 0 | 0 | 1 | |
TestCppcheck+ErrorLogger2 | 8 | 0 | 1 | 0 | 1 | |
TemplateSimplifier | 4 | 17 | 0 | 0 | 0 | |
CheckIO | 38 | 3 | 0 | 0 | 1 | |
CheckUninitVar | 28 | 1 | 0 | 0 | 1 | |
Library+WarnInfo | 5 | 0 | 3 | - | - | |
CppCheckExecutor | 13 | 4 | 6 | 0 | 1 | |
MacroUsage | 4 | 0 | 3 | - | - | simplecpp |
TokenList | 30 | 0 | 4 | 0 | 0 | simplecpp |
Library+Error | 7 | 0 | 2 | 0 | 0 | |
Preprocessor+HeaderTypes | - | - | - | - | - | |
Directive | 6 | 0 | 3 | 0 | 0 | |
CheckBufferOverrun | 48 | 3 | 1 | 0 | 1 | |
CheckStl | 55 | 1 | 0 | 0 | 1 | |
CheckBufferOverrun+ArrayInfo | 19 | 0 | 4 | 0 | 0 | |
Library+AllocFunc | 4 | 0 | 2 | - | - | |
DUI | 6 | 0 | 4 | - | - | simplecpp |
CppCheck | 27 | 2 | 10 | 0 | 1 | |
CheckFunctions | 21 | 1 | 0 | 0 | 1 | |
Library+ArgumentChecks+MinSize | 4 | 0 | 3 | 0 | 0 | |
Timer | 5 | 0 | 5 | 0 | 0 | |
TimerResults | 8 | 0 | 1 | 0 | 1 | |
CheckNullPointer | 20 | 3 | 0 | 0 | 1 | |
Type+FriendInfo | 6 | 0 | 4 | - | - | |
TimerResultsData | 5 | 0 | 2 | - | - | |
FileLister | 0 | 5 | 0 | 0 | 0 | |
Suppressions+FileMatcher | 9 | 1 | 2 | 0 | 0 | |
Directive | 6 | 0 | 3 | 0 | 0 | |
Macro+invalidHashHash | 4 | 0 | 0 | - | - | simplecpp |
Macro+wrongNumberOfParameters | 4 | 0 | 0 | - | - | simplecpp |
Library+WarnInfo | 3 | 0 | 3 | - | - | |
Library+Platform | 4 | 0 | 1 | - | - | |
Library+ArgumentChecks+MinSize | 2 | 0 | 3 | 0 | 0 | |
Library+Container | 6 | 0 | 9 | 0 | 0 | |
Library+ArgumentChecks | 4 | 0 | 10 | 0 | 0 | |
Library+AllocFunc | 4 | 0 | 2 | - | - | |
Library+ExportedFunctions | 7 | 0 | 2 | 0 | 0 | |
Library+PodType | 1 | 0 | 2 | - | - | |
CppCheck | 27 | 2 | 10 | 0 | 1 | |
ThreadExecutor+MessageType | - | - | - | - | - | |
VarIdScopeInfo | 5 | 0 | 4 | - | - | anonymous_namespace{tokenize.cpp} |
Space | 5 | 0 | 3 | - | - | |
triplet | 5 | 0 | 2 | - | - | anonymous_namespace{tokenize.cpp} |
TemplateSimplifier | 4 | 17 | 0 | 0 | 0 | |
ThreadExecutor+MessageType | - | - | - | - | - | |
TestPreprocessor+OurPreprocessor | 4 | 1 | 0 | 0 | 1 | |
Scope+UsingInfo | 6 | 0 | 2 | - | - | |
Library+Platform | 6 | 0 | 1 | - | - | |
Library+ExportedFunctions | 9 | 0 | 2 | 0 | 0 | |
Library+Function | 5 | 0 | 10 | - | - | |
Library+CodeBlock | 13 | 0 | 4 | 0 | 0 | |
Library+ArgumentChecks | 5 | 0 | 10 | 0 | 0 | |
Library+Error | 7 | 0 | 2 | 0 | 0 | |
ItemDefinitionGroup | 6 | 1 | 3 | - | - | anonymous_namespace{importproject.cpp} |
Check | 17 | 2 | 4 | 0 | 0 | |
VarInfo | 11 | 0 | 4 | 0 | 0 | |
Preprocessor+HeaderTypes | - | - | - | - | - | |
MacroUsage | 6 | 0 | 3 | - | - | simplecpp |
DUI | 6 | 0 | 4 | - | - | simplecpp |
CheckUninitVar+Alloc | - | - | - | - | - | |
VariableValue | 6 | 0 | 2 | - | - | |
Filepointer | 4 | 0 | 5 | - | - | |
CheckIO+ArgumentInfo | 10 | 0 | 8 | 0 | 0 | |
Preprocessor | 23 | 3 | 8 | 0 | 0 | |
CmdLineParser | 12 | 3 | 7 | 0 | 0 | |
ThreadExecutor | 10 | 2 | 15 | 0 | 1 | |
CheckBufferOverrun+MyFileInfo | 7 | 0 | 2 | 0 | 1 | |
CheckBufferOverrun+ArrayInfo | 19 | 0 | 4 | 0 | 0 | |
Location | 7 | 0 | 2 | - | - | anonymous_namespace{checkunusedfunctions .cpp} |
CheckUnusedFunctions+FunctionUsage | 6 | 0 | 4 | 0 | 0 | |
CheckUnusedFunctions+FunctionDecl | 6 | 0 | 2 | 0 | 0 | |
CheckClass+Usage | 6 | 0 | 2 | - | - | |
VarInfo | 4 | 0 | 2 | - | - | anonymous_namespace{checkclass.cpp} |
Type+FriendInfo | 4 | 0 | 4 | - | - | |
CheckUnusedFunctions | 15 | 3 | 4 | 0 | 1 | |
Settings+Rule | 6 | 0 | 5 | 0 | 0 | |
AnalyzerInformation | 8 | 2 | 2 | 0 | 0 | |
CheckUninitVar+MyFileInfo | 4 | 0 | 2 | 0 | 1 | |
CheckUninitVar | 28 | 1 | 0 | 0 | 1 | |
CheckSizeof | 29 | 1 | 0 | 0 | 1 | |
CheckStl | 55 | 1 | 0 | 0 | 1 | |
CheckType | 22 | 1 | 0 | 0 | 1 | |
PathMatch | 7 | 1 | 3 | 0 | 0 | |
CheckVaarg | 17 | 1 | 0 | 0 | 1 | |
CheckUnusedVar | 21 | 1 | 2 | 0 | 1 | |
CheckMemoryLeakInClass | 15 | 1 | 0 | 0 | 1 | |
ProgramMemory | 14 | 0 | 1 | - | - | anonymous_namespace{valueflow.cpp} |
AST_state | 5 | 0 | 5 | - | - | |
CheckBufferOverrun | 48 | 3 | 1 | 0 | 1 | |
CheckBoost | 12 | 1 | 0 | 0 | 1 | |
CheckCondition | 35 | 1 | 0 | 0 | 1 | |
CheckClass | 64 | 9 | 1 | 0 | 1 | |
CheckAssert | 14 | 2 | 0 | 0 | 1 | |
Check64BitPortability | 16 | 1 | 0 | 0 | 1 | |
CheckBool | 31 | 1 | 0 | 0 | 1 | |
CheckAutoVariables | 24 | 8 | 0 | 0 | 1 | |
CheckOther | 99 | 3 | 0 | 0 | 1 | |
CheckMemoryLeakStructMember | 12 | 2 | 0 | 0 | 1 | |
CheckLeakAutoVar | 22 | 1 | 0 | 0 | 1 | |
CheckPostfixOperator | 12 | 1 | 0 | 0 | 1 | |
CheckMemoryLeakNoVar | 16 | 1 | 0 | 0 | 1 | |
CheckString | 26 | 1 | 0 | 0 | 1 | |
CheckFunctions | 21 | 1 | 0 | 0 | 1 | |
CheckIO | 38 | 3 | 0 | 0 | 1 | |
CheckExceptionSafety | 22 | 1 | 0 | 0 | 1 | |
XMLConstHandle | 18 | 0 | 1 | 0 | 0 | tinyxml2 |
XMLHandle | 18 | 0 | 1 | 0 | 0 | tinyxml2 |
XMLElement+AnonymousEnum | - | - | - | - | - | tinyxml2 |
TestCharVar | 11 | 0 | 1 | 0 | 2 | |
TestBufferOverrun | 146 | 0 | 1 | 0 | 2 | |
XMLPrinter+AnonymousEnum | - | - | - | - | - | tinyxml2 |
StrPair+AnonymousEnum | - | - | - | - | - | tinyxml2 |
CheckBufferOverrun+MyFileInfo+ArrayUsage | 3 | 0 | 3 | - | - | |
CheckBufferOverrun+MyFileInfo | 5 | 0 | 2 | 0 | 1 | |
XMLElement+AnonymousEnum | - | - | - | - | - | tinyxml2 |
XMLAttribute+AnonymousEnum | - | - | - | - | - | tinyxml2 |
XMLUtil | 0 | 22 | 0 | 0 | 0 | tinyxml2 |
TestGarbage | 187 | 0 | 1 | 0 | 2 | |
TestFileLister | 9 | 0 | 0 | 0 | 2 | |
TestExceptionSafety | 25 | 0 | 1 | 0 | 2 | |
TestLeakAutoVar | 70 | 0 | 1 | 0 | 2 | |
TestIO | 37 | 0 | 1 | 0 | 2 | |
TestIncompleteStatement | 26 | 0 | 1 | 0 | 2 | |
TestCondition | 40 | 0 | 2 | 0 | 2 | |
TestCmdlineParser | 103 | 0 | 2 | 0 | 2 | |
TestClass | 161 | 0 | 2 | 0 | 2 | |
TestErrorLogger | 30 | 0 | 2 | 0 | 2 | |
TestCppcheck | 10 | 0 | 0 | 0 | 2 | |
TestConstructors | 132 | 0 | 1 | 0 | 2 | |
Library+CodeBlock | 12 | 0 | 4 | 0 | 0 | |
Library+Function | 3 | 0 | 10 | - | - | |
Severity | 6 | 2 | 0 | 0 | 0 | |
IMAGEHLP_SYMBOL64_EXT | 3 | 0 | 1 | - | - | anonymous_namespace{cppcheckexecutor .cpp} |
make_container<Cont> | 5 | 0 | 1 | 0 | 0 | |
DUI | 3 | 0 | 4 | - | - | simplecpp |
TimerResultsData | 3 | 0 | 2 | - | - | |
MathLib+value | 12 | 1 | 4 | 0 | 0 | |
MathLib | 6 | 37 | 0 | 0 | 0 | |
Suppressions+FileMatcher | 9 | 1 | 2 | 0 | 0 | |
Settings+Rule | 6 | 0 | 5 | 0 | 0 | |
Timer | 5 | 0 | 5 | 0 | 0 | |
TestAssert | 12 | 0 | 1 | 0 | 2 | |
Test64BitPortability | 14 | 0 | 1 | 0 | 2 | |
IMAGEHLP_SYMBOL64_EXT | 3 | 0 | 1 | - | - | anonymous_namespace{cppcheckexecutor .cpp} |
TestBoost | 9 | 0 | 1 | 0 | 2 | |
TestBool | 31 | 0 | 1 | 0 | 2 | |
TestAutoVariables | 54 | 0 | 1 | 0 | 2 | |
Severity | 6 | 2 | 0 | 0 | 0 | |
Suppressions+FileMatcher | 9 | 1 | 2 | 0 | 0 | |
MathLib+value | 12 | 1 | 4 | 0 | 0 | |
Settings+Rule | 6 | 0 | 5 | 0 | 0 | |
Timer | 5 | 0 | 5 | 0 | 0 | |
Library+CodeBlock | 12 | 0 | 4 | 0 | 0 | |
TestTokenList | 12 | 0 | 1 | 0 | 2 | |
TestTokenizer | 369 | 0 | 4 | 0 | 2 | |
TestToken | 55 | 1 | 6 | 0 | 2 | |
TestUninitVar | 50 | 0 | 1 | 0 | 2 | |
CheckUninitVar+MyFileInfo | 4 | 0 | 2 | 0 | 1 | |
TestType | 15 | 0 | 0 | 0 | 2 | |
TestSuppressions | 25 | 0 | 0 | 0 | 2 | |
TestString | 20 | 0 | 1 | 0 | 2 | |
TestStl | 90 | 0 | 1 | 0 | 2 | |
TestTimer | 8 | 0 | 0 | 0 | 2 | |
TestThreadExecutor | 15 | 0 | 1 | 0 | 2 | |
TestSymbolDatabase | 202 | 2 | 7 | 0 | 2 | |
Macro | 24 | 0 | 8 | 0 | 0 | simplecpp |
TestVarID | 147 | 0 | 0 | 0 | 2 | |
TestValueFlow | 44 | 0 | 1 | 0 | 2 | |
LongFitsIntoSizeTMinusOne<false> | 0 | 1 | 0 | - | - | tinyxml2 |
XMLConstHandle | 18 | 0 | 1 | 0 | 0 | tinyxml2 |
XMLHandle | 18 | 0 | 1 | 0 | 0 | tinyxml2 |
TestUnusedFunctions | 30 | 0 | 1 | 0 | 2 | |
CheckUnusedFunctions+FunctionDecl | 6 | 0 | 2 | 0 | 0 | |
CheckUnusedFunctions+FunctionUsage | 6 | 0 | 4 | 0 | 0 | |
TestVaarg | 14 | 0 | 1 | 0 | 2 | |
TestUnusedVar | 142 | 0 | 1 | 0 | 2 | |
TestUnusedPrivateFunction | 38 | 0 | 1 | 0 | 2 | |
TestMemleakNoVar | 11 | 0 | 1 | 0 | 2 | |
TestMemleakStructMember | 28 | 0 | 1 | 0 | 2 | |
TestMemleakInClass | 38 | 0 | 1 | 0 | 2 | |
TestNullPointer | 59 | 0 | 1 | 0 | 2 | |
TestMemleakWindows | 11 | 0 | 1 | 0 | 2 | |
TestMemleakGLib | 10 | 0 | 1 | 0 | 2 | |
TestMathLib | 39 | 0 | 0 | 0 | 2 | |
TestLibrary | 30 | 0 | 1 | 0 | 2 | |
TestLeakAutoVarWindows | 9 | 0 | 1 | 0 | 2 | |
TestMemleakInFunction | 174 | 0 | 3 | 0 | 2 | |
TestMemleak | 10 | 0 | 1 | 0 | 2 | |
Scope+UsingInfo | 0 | 0 | 2 | - | - | |
TestSimplifyTemplate | 78 | 0 | 1 | 0 | 2 | |
TestSamples | 8 | 0 | 0 | 0 | 2 | |
TestPreprocessor | 151 | 0 | 2 | 0 | 2 | |
TestSizeof | 18 | 0 | 1 | 0 | 2 | |
TestSimplifyTypedef | 136 | 0 | 3 | 0 | 2 | |
TestSimplifyTokens | 118 | 0 | 4 | 0 | 2 | |
TestOther | 140 | 0 | 1 | 0 | 2 | |
TestOptions | 14 | 0 | 0 | 0 | 2 | |
TestFunctions | 32 | 0 | 1 | 0 | 2 | |
TestPostfixOperator | 17 | 0 | 1 | 0 | 2 | |
TestPathMatch | 34 | 0 | 4 | 0 | 2 | |
TestPath | 15 | 0 | 0 | 0 | 2 |
Types Metrics : Lack Of Cohesion Of Methods and Association Between Classes
Type Name | Lack Of Cohesion Of Methods | Lack Of Cohesion Of Methods HS | Association Between Classes | Type Namespace |
---|---|---|---|---|
Token | 0.97 | 0.97 | 66 | |
Settings | 0.99 | 1.12 | 10 | |
Token | 0.91 | 0.92 | 173 | |
Tokenizer | 0.99 | 1 | 5 | |
TestFixture | 0.83 | 0.87 | 57 | |
StrPair+AnonymousEnum | - | - | 0 | tinyxml2 |
ErrorLogger | 0 | 0 | 1 | |
XMLDocument | 0.98 | 1.01 | 6 | tinyxml2 |
StrPair | 0.69 | 0.74 | 2 | tinyxml2 |
XMLVisitor | 0 | 0 | 0 | tinyxml2 |
XMLNode | 0.97 | 0.99 | 1 | tinyxml2 |
Scope | 0.84 | 0.88 | 128 | |
XMLUtil | 0 | 0 | 15 | tinyxml2 |
Check | 0.88 | 0.93 | 9 | |
XMLNode | 0.82 | 0.83 | 21 | tinyxml2 |
Severity+SeverityType | - | - | 0 | |
Library | 0.99 | 1 | 21 | |
XMLError | - | - | 0 | tinyxml2 |
XMLDocument | 0.88 | 0.9 | 60 | tinyxml2 |
Severity+SeverityType | - | - | 0 | |
Variable | 0.88 | 0.9 | 66 | |
StrPair | 0 | 0 | 22 | tinyxml2 |
StrPair+AnonymousEnum | - | - | 0 | tinyxml2 |
Library+ErrorCode | - | - | 0 | |
XMLElement | 0.85 | 0.86 | 78 | tinyxml2 |
Settings | 0.92 | 1.03 | 39 | |
XMLDeclaration | 0 | 0 | 1 | tinyxml2 |
XMLText | 0.67 | 0.73 | 2 | tinyxml2 |
XMLUnknown | 0 | 0 | 1 | tinyxml2 |
XMLElement | 0.99 | 1 | 18 | tinyxml2 |
Scope | 0.99 | 1.03 | 29 | |
XMLVisitor | 0 | 0 | 0 | tinyxml2 |
Platform+PlatformType | - | - | 0 | cppcheck |
ErrorLogger+ErrorMessage | 0.99 | 1.05 | 1 | |
TokenList | 0.94 | 0.97 | 1 | |
XMLComment | 0 | 0 | 1 | tinyxml2 |
XMLError | - | - | 0 | tinyxml2 |
XMLAttribute | 0.97 | 1.01 | 0 | tinyxml2 |
Type | 0.71 | 0.78 | 45 | |
XMLText | 0.67 | 0.73 | 21 | tinyxml2 |
Platform | 0.98 | 1.09 | 5 | cppcheck |
Tokenizer | 0.85 | 0.85 | 370 | |
MemPool | 0 | 0 | 0 | tinyxml2 |
Function | 0.95 | 0.97 | 102 | |
ErrorLogger | 0 | 0 | 30 | |
MemPoolT<ITEM_SIZE>+Item | 0 | 0 | 0 | tinyxml2 |
MemPoolT<ITEM_SIZE>+Item | 0 | 0 | 0 | tinyxml2 |
SymbolDatabase | 0.77 | 0.79 | 422 | |
Token | 0.97 | 0.97 | 66 | |
XMLDeclaration | 0 | 0 | 14 | tinyxml2 |
XMLUnknown | 0 | 0 | 14 | tinyxml2 |
Location | 0.17 | 0.2 | 8 | simplecpp |
MemPool | 0 | 0 | 0 | tinyxml2 |
Value+MoveKind | - | - | 0 | ValueFlow |
Library+Error | 0.33 | 0.5 | 1 | |
Severity+SeverityType | - | - | 0 | |
Check | 0.83 | 0.88 | 24 | |
VarInfo+AllocStatus | - | - | 0 | |
ErrorLogger+ErrorMessage+FileLocation | 0.75 | 0.9 | 1 | |
Library+ArgumentChecks+MinSize+Type | - | - | 0 | |
Value | 0.69 | 0.75 | 9 | ValueFlow |
Type | 0.85 | 0.93 | 5 | |
Check+FileInfo | 0 | 0 | 2 | |
Variables | 0.78 | 0.82 | 44 | |
Library+ArgumentChecks+MinSize+Type | - | - | 0 | |
Suppressions+SuppressionEntry | 0 | 0 | 1 | |
VarInfo+AllocStatus | - | - | 0 | |
Library | 0.95 | 0.97 | 242 | |
Library+ArgumentChecks+MinSize+Type | - | - | 0 | |
Scope+ScopeType | - | - | 0 | |
XMLComment | 0 | 0 | 14 | tinyxml2 |
MathLib | 0 | 0 | 58 | |
XMLAttribute | 0.88 | 0.91 | 22 | tinyxml2 |
AccessControl | - | - | 0 | |
SHOWTIME_MODES | - | - | 0 | |
InternalError | 0 | 0 | 4 | |
InternalError | 1 | 0 | 1 | |
Settings | 0.99 | 1.12 | 10 | |
options | 0.61 | 0.73 | 8 | |
Entity | 0 | 0 | 0 | tinyxml2 |
Location | 0.29 | 0.35 | 4 | simplecpp |
Library+Container+Yield | - | - | 0 | |
ValueType | 0.05 | 0.06 | 63 | |
Check+FileInfo | 0 | 0 | 2 | |
Token+Type | - | - | 0 | |
Library+Container+Action | - | - | 0 | |
Location | 0.29 | 0.35 | 4 | simplecpp |
Suppressions | 1 | 1.17 | 1 | |
Path | 0 | 0 | 63 | |
Value | 0.69 | 0.75 | 9 | ValueFlow |
StrPair+AnonymousEnum | - | - | 0 | tinyxml2 |
Token+Type | - | - | 0 | |
AccessControl | - | - | 0 | |
CWE | 0 | 0 | 0 | |
Library+Container+Yield | - | - | 0 | |
Library+Container+Action | - | - | 0 | |
Platform+PlatformType | - | - | 0 | cppcheck |
Value+ValueType | - | - | 0 | ValueFlow |
Value+MoveKind | - | - | 0 | ValueFlow |
Token+AnonymousEnum | - | - | 0 | |
Token+Anonymous | 0 | 0 | 0 | |
TimerResults | 1 | 1.5 | 2 | |
ImportProject | 1 | 1.17 | 0 | |
ErrorLogger+ErrorMessage | 0.99 | 1.05 | 1 | |
Library+Container+Yield | - | - | 0 | |
Library+Container+Action | - | - | 0 | |
Settings+Language | - | - | 0 | |
Value+ValueType | - | - | 0 | ValueFlow |
Function | 0.96 | 0.98 | 32 | |
Platform | 0.1 | 0.11 | 19 | cppcheck |
ErrorLogger+ErrorMessage | 0.47 | 0.5 | 105 | |
Library+ErrorCode | - | - | 0 | |
Library+ErrorCode | - | - | 0 | |
TokenList | 0.71 | 0.74 | 108 | |
Library+ArgumentChecks+IteratorInfo | 0 | 0 | 0 | |
Variable | 0.92 | 0.94 | 35 | |
XMLElement+AnonymousEnum | - | - | 0 | tinyxml2 |
SymbolDatabase | 1 | 1.02 | 3 | |
TimerResultsIntf | 0 | 0 | 0 | |
TokenList | 0.94 | 0.97 | 1 | |
TimerResultsData | 0.25 | 0.5 | 1 | |
Value+ValueKind | - | - | 0 | ValueFlow |
Whitespace | - | - | 0 | tinyxml2 |
Type+BaseInfo | 0.5 | 1 | 1 | |
CheckMemoryLeak | 0.95 | 1 | 0 | |
Path | 0 | 0 | 1 | |
InternalError+Type | - | - | 0 | |
Platform+PlatformType | - | - | 0 | cppcheck |
TimerResultsIntf | 0 | 0 | 0 | |
MemPoolT<ITEM_SIZE> | 0.5 | 0.55 | 3 | tinyxml2 |
ErrorLogger+ErrorMessage+FileLocation | 0.75 | 0.9 | 1 | |
DynArray<T,INITIAL_SIZE> | 0.53 | 0.56 | 0 | tinyxml2 |
Value+MoveKind | - | - | 0 | ValueFlow |
ErrorLogger | 0 | 0 | 1 | |
Function+Type | - | - | 0 | |
Library+ArgumentChecks+IteratorInfo | 0 | 0 | 0 | |
Value+ValueKind | - | - | 0 | ValueFlow |
ValueType+Type | - | - | 0 | |
XMLPrinter | 0.99 | 1.02 | 5 | tinyxml2 |
Whitespace | - | - | 0 | tinyxml2 |
MemPoolT<ITEM_SIZE> | 0.5 | 0.55 | 3 | tinyxml2 |
Library+ArgumentChecks+IteratorInfo | 0 | 0 | 0 | |
Suppressions+SuppressionEntry | 0 | 0 | 1 | |
PathMatch | 1 | 1.5 | 0 | |
Library+Container | 0.74 | 1.11 | 9 | |
Filepointer+Operation | - | - | 0 | |
OpenMode | - | - | 0 | |
Filepointer+AppendMode | - | - | 0 | |
DynArray<T,INITIAL_SIZE> | 0.53 | 0.56 | 0 | tinyxml2 |
ImportProject+FileSettings | 0.94 | 1.42 | 1 | |
Library+Container | 0.74 | 1.11 | 9 | |
SHOWTIME_MODES | - | - | 0 | |
Macro+Error | 0 | 0 | 2 | simplecpp |
InternalError+Type | - | - | 0 | |
ErrorLogger+ErrorMessage+FileLocation | 0.25 | 0.3 | 14 | |
ImportProject+FileSettings | 0.94 | 1.42 | 1 | |
Variables+VariableType | - | - | 0 | |
CheckMemoryLeak+AllocType | - | - | 0 | |
TestRegistry | 0.33 | 0.5 | 2 | |
SHOWTIME_MODES | - | - | 0 | |
Output | 0.33 | 0 | 2 | simplecpp |
XMLAttribute+AnonymousEnum | - | - | 0 | tinyxml2 |
Enumerator | 0 | 0 | 0 | |
CheckClass | 0.99 | 1 | 6 | |
Library+PlatformType | 0.38 | 0.57 | 1 | |
ValueType+Sign | - | - | 0 | |
Value+ValueType | - | - | 0 | ValueFlow |
Value+ValueKind | - | - | 0 | ValueFlow |
MemPoolT<ITEM_SIZE>+Block | 0 | 0 | 0 | tinyxml2 |
MemPoolT<ITEM_SIZE>+AnonymousEnum | - | - | 0 | tinyxml2 |
MemPoolT<ITEM_SIZE>+AnonymousEnum | - | - | 0 | tinyxml2 |
MemPoolT<ITEM_SIZE>+Block | 0 | 0 | 0 | tinyxml2 |
CWE | 0 | 0 | 0 | |
CppCheck | 0.99 | 1.03 | 2 | |
Library+ArgumentChecks | 0.2 | 0 | 1 | |
Type+NeedInitialization | - | - | 0 | |
Output+Type | - | - | 0 | simplecpp |
Preprocessor | 0.98 | 1.03 | 2 | |
MathLib+value+AnonymousEnum | - | - | 0 | |
MathLib+value+AnonymousEnum | - | - | 0 | |
Library+PlatformType | 0.38 | 0.57 | 1 | |
CWE | 0 | 0 | 0 | |
CheckOther | 0 | 0 | 8 | |
Library+AllocFunc | 0 | 0 | 0 | |
CheckMemoryLeak+AllocType | - | - | 0 | |
XMLPrinter | 0.84 | 0.86 | 39 | tinyxml2 |
XMLElement+AnonymousEnum | - | - | 0 | tinyxml2 |
Dimension | 0 | 0 | 0 | |
CheckMemoryLeak | 0.8 | 0.84 | 83 | |
InternalError+Type | - | - | 0 | |
Library+WarnInfo | 0 | 0 | 0 | |
make_container<Cont> | 0 | 0 | 0 | |
Token+AnonymousEnum | - | - | 0 | |
Token+Anonymous | 0 | 0 | 0 | |
Output+Type | - | - | 0 | simplecpp |
TimerResultsIntf | 0 | 0 | 0 | |
Suppressions+SuppressionEntry | 0 | 0 | 1 | |
Preprocessor | 0.73 | 0.77 | 168 | |
Scope+ScopeType | - | - | 0 | |
LongFitsIntoSizeTMinusOne<> | 0 | 0 | 1 | tinyxml2 |
Output+Type | - | - | 0 | simplecpp |
Library+PodType | 0 | 0 | 0 | |
ImportProject | 1 | 1.17 | 0 | |
Suppressions | 1 | 1.17 | 1 | |
Settings+Language | - | - | 0 | |
TokenList | 0.88 | 0.91 | 3 | simplecpp |
CheckLeakAutoVar | 0 | 0 | 5 | |
Library+PodType | 0 | 0 | 0 | |
CheckMemoryLeakInFunction | 0.71 | 0.77 | 16 | |
Suppressions | 0.29 | 0.33 | 57 | |
Library+Container+Function | 0 | 0 | 0 | |
Tokenizer | 0.99 | 1 | 5 | |
Output | 0.33 | 0 | 2 | simplecpp |
Variable+AnonymousEnum | - | - | 0 | |
InternalError | 1 | 0 | 1 | |
CheckMemoryLeakInFunction | 0.57 | 0.62 | 149 | |
Type+NeedInitialization | - | - | 0 | |
Type+BaseInfo | 0.5 | 1 | 1 | |
FileLister | 0 | 0 | 33 | |
Path | 0 | 0 | 1 | |
Library+ArgumentChecks+MinSize | 0 | 0 | 0 | |
Platform | 0.98 | 1.09 | 5 | cppcheck |
Enumerator | 0 | 0 | 0 | |
Library+Platform | 0 | 0 | 5 | |
Function+Type | - | - | 0 | |
Severity | 0 | 0 | 15 | |
Library+PlatformType | 0.38 | 0.57 | 1 | |
Library+Function | 0.1 | 0 | 0 | |
AnalyzerInformation | 1 | 1.17 | 0 | |
Value | 0.69 | 0.75 | 9 | ValueFlow |
Token+Type | - | - | 0 | |
Token+AnonymousEnum | - | - | 0 | |
Token+Anonymous | 0 | 0 | 0 | |
CheckMemoryLeakStructMember | 0 | 0 | 7 | |
CheckMemoryLeakInClass | 0 | 0 | 8 | |
ImportProject | 0.14 | 0.17 | 101 | |
ProjectConfiguration | 0 | 0 | 7 | anonymous_namespace{importproject.cpp} |
ValueType+Type | - | - | 0 | |
PathMatch | 1 | 1.5 | 0 | |
CheckMemoryLeakNoVar | 0 | 0 | 7 | |
Library+ExportedFunctions | 0.5 | 0.67 | 4 | |
ThreadExecutor | 0.74 | 0.81 | 72 | |
Function+AnonymousEnum | - | - | 0 | |
Settings+Language | - | - | 0 | |
Token | 0.6 | 0.66 | 16 | simplecpp |
AnalyzerInformation | 1 | 1.17 | 0 | |
MacroUsage | 0.33 | 0 | 1 | simplecpp |
Library | 0.99 | 1 | 21 | |
CppCheckExecutor | 0.73 | 0.79 | 154 | |
Token | 0.71 | 0.78 | 9 | simplecpp |
Variables+ScopeGuard | 0.38 | 0.5 | 2 | |
Variables+VariableUsage | 0.48 | 0.72 | 5 | |
make_container<Cont> | 0 | 0 | 0 | |
Dimension | 0 | 0 | 0 | |
ValueType | 0.47 | 0.51 | 7 | |
CheckAssert | 0 | 0 | 5 | |
CheckExceptionSafety | 0 | 0 | 21 | |
CheckVaarg | 0 | 0 | 5 | |
CheckPostfixOperator | 0 | 0 | 6 | |
Check64BitPortability | 0 | 0 | 6 | |
MathLib | 0 | 0 | 3 | |
CheckSizeof | 0 | 0 | 5 | |
CheckBool | 0 | 0 | 5 | |
CheckString | 0 | 0 | 5 | |
CheckBoost | 0 | 0 | 6 | |
ValueType+Sign | - | - | 0 | |
Token | 0.71 | 0.78 | 9 | simplecpp |
TimerResults | 1 | 1.5 | 2 | |
ImportProject+FileSettings | 0.83 | 1.25 | 33 | |
VarInfo+AllocInfo | 0 | 0 | 1 | |
Library+Container+Function | 0 | 0 | 0 | |
CheckUnusedVar | 1 | 1.06 | 6 | |
MathLib+value+AnonymousEnum | - | - | 0 | |
Output | 0.33 | 0 | 2 | simplecpp |
CheckUninitVar+Alloc | - | - | 0 | |
CheckIO+ArgumentInfo | 1 | 1.11 | 0 | |
Function+AnonymousEnum | - | - | 0 | |
XMLPrinter+AnonymousEnum | - | - | 0 | tinyxml2 |
TokenList | 0.67 | 0.69 | 112 | simplecpp |
CheckBufferOverrun+MyFileInfo+ArrayUsage | 0 | 0 | 0 | |
CheckCondition | 0 | 0 | 6 | |
Variable+AnonymousEnum | - | - | 0 | |
CheckClass+Usage | 0 | 0 | 0 | |
VarInfo+AllocInfo | 0 | 0 | 1 | |
VarInfo | 0.4 | 0.5 | 4 | |
MathLib+value | 0.02 | 0.03 | 33 | |
CheckType | 0 | 0 | 11 | |
CheckUnusedFunctions | 1 | 1.08 | 6 | |
CheckAutoVariables | 0 | 0 | 5 | |
Preprocessor+HeaderTypes | - | - | 0 | |
Directive | 1 | 0 | 0 | |
CmdLineParser | 0.65 | 0.71 | 134 | |
Library+Container+Function | 0 | 0 | 0 | |
Check+FileInfo | 0 | 0 | 2 | |
CheckNullPointer | 0 | 0 | 103 | |
TestCppcheck+ErrorLogger2 | 0.5 | 1 | 4 | |
TemplateSimplifier | 0 | 0 | 0 | |
CheckIO | 0 | 0 | 5 | |
CheckUninitVar | 0 | 0 | 7 | |
Library+WarnInfo | 0 | 0 | 0 | |
CppCheckExecutor | 0.73 | 0.79 | 154 | |
MacroUsage | 0.33 | 0 | 1 | simplecpp |
TokenList | 0.88 | 0.91 | 3 | simplecpp |
Library+Error | 0.33 | 0.5 | 1 | |
Preprocessor+HeaderTypes | - | - | 0 | |
Directive | 1 | 0 | 0 | |
CheckBufferOverrun | 0.96 | 0.98 | 13 | |
CheckStl | 0 | 0 | 6 | |
CheckBufferOverrun+ArrayInfo | 0.84 | 0.9 | 3 | |
Library+AllocFunc | 0 | 0 | 0 | |
DUI | 0 | 0 | 0 | simplecpp |
CppCheck | 0.99 | 1.03 | 2 | |
CheckFunctions | 0 | 0 | 19 | |
Library+ArgumentChecks+MinSize | 0 | 0 | 0 | |
Timer | 0.35 | 0.47 | 12 | |
TimerResults | 0.33 | 0.5 | 31 | |
CheckNullPointer | 0 | 0 | 5 | |
Type+FriendInfo | 0.25 | 0 | 0 | |
TimerResultsData | 0.25 | 0.5 | 1 | |
FileLister | 0 | 0 | 33 | |
Suppressions+FileMatcher | 0.5 | 0.67 | 31 | |
Directive | -0.33 | 0 | 3 | |
Macro+invalidHashHash | 0 | 0 | 6 | simplecpp |
Macro+wrongNumberOfParameters | 0 | 0 | 6 | simplecpp |
Library+WarnInfo | 0 | 0 | 0 | |
Library+Platform | 0 | 0 | 5 | |
Library+ArgumentChecks+MinSize | 0 | 0 | 0 | |
Library+Container | 0.74 | 1.11 | 9 | |
Library+ArgumentChecks | 0.2 | 0 | 1 | |
Library+AllocFunc | 0 | 0 | 0 | |
Library+ExportedFunctions | 0.5 | 0.67 | 4 | |
Library+PodType | 0 | 0 | 0 | |
CppCheck | 0.79 | 0.82 | 202 | |
ThreadExecutor+MessageType | - | - | 0 | |
VarIdScopeInfo | 0 | 0 | 0 | anonymous_namespace{tokenize.cpp} |
Space | 0.33 | 0 | 0 | |
triplet | 0 | 0 | 1 | anonymous_namespace{tokenize.cpp} |
TemplateSimplifier | 0 | 0 | 160 | |
ThreadExecutor+MessageType | - | - | 0 | |
TestPreprocessor+OurPreprocessor | 0 | 0 | 19 | |
Scope+UsingInfo | 0 | 0 | 0 | |
Library+Platform | 0 | 0 | 5 | |
Library+ExportedFunctions | 0.5 | 0.67 | 4 | |
Library+Function | 0.1 | 0 | 0 | |
Library+CodeBlock | 0.72 | 0.81 | 6 | |
Library+ArgumentChecks | 0.2 | 0 | 1 | |
Library+Error | 0.33 | 0.5 | 1 | |
ItemDefinitionGroup | 0.44 | 0.67 | 37 | anonymous_namespace{importproject.cpp} |
Check | 0.88 | 0.93 | 9 | |
VarInfo | 0.1 | 0.12 | 30 | |
Preprocessor+HeaderTypes | - | - | 0 | |
MacroUsage | 0.33 | 0 | 1 | simplecpp |
DUI | 0 | 0 | 0 | simplecpp |
CheckUninitVar+Alloc | - | - | 0 | |
VariableValue | 0 | 0 | 0 | |
Filepointer | 0 | 0 | 3 | |
CheckIO+ArgumentInfo | -0.02 | -0.03 | 84 | |
Preprocessor | 0.98 | 1.03 | 2 | |
CmdLineParser | 0.65 | 0.71 | 134 | |
ThreadExecutor | 0.74 | 0.81 | 72 | |
CheckBufferOverrun+MyFileInfo | 0 | 0 | 21 | |
CheckBufferOverrun+ArrayInfo | 0.48 | 0.52 | 20 | |
Location | 0.25 | 0.5 | 1 | anonymous_namespace{checkunusedfunctions .cpp} |
CheckUnusedFunctions+FunctionUsage | 0.25 | 0 | 0 | |
CheckUnusedFunctions+FunctionDecl | 0 | 0 | 4 | |
CheckClass+Usage | 0 | 0 | 0 | |
VarInfo | 0 | 0 | 0 | anonymous_namespace{checkclass.cpp} |
Type+FriendInfo | 0.25 | 0 | 0 | |
CheckUnusedFunctions | 0.85 | 0.92 | 147 | |
Settings+Rule | 0.4 | 0 | 2 | |
AnalyzerInformation | 0.57 | 0.67 | 55 | |
CheckUninitVar+MyFileInfo | 0 | 0 | 1 | |
CheckUninitVar | 0 | 0 | 153 | |
CheckSizeof | 0 | 0 | 57 | |
CheckStl | 0 | 0 | 190 | |
CheckType | 0 | 0 | 106 | |
PathMatch | 0.11 | 0.17 | 33 | |
CheckVaarg | 0 | 0 | 63 | |
CheckUnusedVar | 0.94 | 1 | 182 | |
CheckMemoryLeakInClass | 0 | 0 | 74 | |
ProgramMemory | 0 | 0 | 18 | anonymous_namespace{valueflow.cpp} |
AST_state | 0.2 | 0 | 0 | |
CheckBufferOverrun | 0.74 | 0.76 | 245 | |
CheckBoost | 0 | 0 | 25 | |
CheckCondition | 0 | 0 | 151 | |
CheckClass | 0.74 | 0.75 | 247 | |
CheckAssert | 0 | 0 | 47 | |
Check64BitPortability | 0 | 0 | 43 | |
CheckBool | 0 | 0 | 72 | |
CheckAutoVariables | 0 | 0 | 85 | |
CheckOther | 0 | 0 | 276 | |
CheckMemoryLeakStructMember | 0 | 0 | 50 | |
CheckLeakAutoVar | 0 | 0 | 130 | |
CheckPostfixOperator | 0 | 0 | 30 | |
CheckMemoryLeakNoVar | 0 | 0 | 53 | |
CheckString | 0 | 0 | 73 | |
CheckFunctions | 0 | 0 | 101 | |
CheckIO | 0 | 0 | 179 | |
CheckExceptionSafety | 0 | 0 | 70 | |
XMLConstHandle | -0.24 | -0.25 | 12 | tinyxml2 |
XMLHandle | -0.24 | -0.25 | 12 | tinyxml2 |
XMLElement+AnonymousEnum | - | - | 0 | tinyxml2 |
TestCharVar | 0.67 | 0.8 | 18 | |
TestBufferOverrun | 0.98 | 0.99 | 45 | |
XMLPrinter+AnonymousEnum | - | - | 0 | tinyxml2 |
StrPair+AnonymousEnum | - | - | 0 | tinyxml2 |
CheckBufferOverrun+MyFileInfo+ArrayUsage | 0 | 0 | 0 | |
CheckBufferOverrun+MyFileInfo | 1 | 0 | 1 | |
XMLElement+AnonymousEnum | - | - | 0 | tinyxml2 |
XMLAttribute+AnonymousEnum | - | - | 0 | tinyxml2 |
XMLUtil | 0 | 0 | 6 | tinyxml2 |
TestGarbage | 0.97 | 0.98 | 38 | |
TestFileLister | 0 | 0 | 28 | |
TestExceptionSafety | 0.9 | 0.95 | 17 | |
TestLeakAutoVar | 0.97 | 0.98 | 24 | |
TestIO | 0.94 | 0.97 | 34 | |
TestIncompleteStatement | 0.9 | 0.95 | 17 | |
TestCondition | 0.94 | 0.97 | 25 | |
TestCmdlineParser | 0.18 | 0.19 | 79 | |
TestClass | 0.95 | 0.96 | 40 | |
TestErrorLogger | 0.56 | 0.58 | 56 | |
TestCppcheck | 0 | 0 | 34 | |
TestConstructors | 0.98 | 0.99 | 19 | |
Library+CodeBlock | 0.72 | 0.81 | 6 | |
Library+Function | 0.1 | 0 | 0 | |
Severity | 0 | 0 | 15 | |
IMAGEHLP_SYMBOL64_EXT | 0 | 0 | 1 | anonymous_namespace{cppcheckexecutor .cpp} |
make_container<Cont> | 0 | 0 | 0 | |
DUI | 0 | 0 | 0 | simplecpp |
TimerResultsData | 0.25 | 0.5 | 1 | |
MathLib+value | 0.91 | 1 | 2 | |
MathLib | 0 | 0 | 3 | |
Suppressions+FileMatcher | 1 | 1.33 | 0 | |
Settings+Rule | 0.4 | 0 | 2 | |
Timer | 1 | 1.33 | 0 | |
TestAssert | 0.71 | 0.83 | 16 | |
Test64BitPortability | 0.78 | 0.88 | 16 | |
IMAGEHLP_SYMBOL64_EXT | 0 | 0 | 1 | anonymous_namespace{cppcheckexecutor .cpp} |
TestBoost | 0.5 | 0.67 | 17 | |
TestBool | 0.92 | 0.96 | 21 | |
TestAutoVariables | 0.96 | 0.98 | 26 | |
Severity | 0 | 0 | 15 | |
Suppressions+FileMatcher | 1 | 1.33 | 0 | |
MathLib+value | 0.91 | 1 | 2 | |
Settings+Rule | 0.4 | 0 | 2 | |
Timer | 1 | 1.33 | 0 | |
Library+CodeBlock | 0.72 | 0.81 | 6 | |
TestTokenList | 0.29 | 0.33 | 27 | |
TestTokenizer | 0.99 | 0.99 | 116 | |
TestToken | 0.83 | 0.85 | 86 | |
TestUninitVar | 0.91 | 0.93 | 32 | |
CheckUninitVar+MyFileInfo | 0 | 0 | 1 | |
TestType | 0 | 0 | 28 | |
TestSuppressions | 0 | 0 | 57 | |
TestString | 0.87 | 0.93 | 19 | |
TestStl | 0.98 | 0.99 | 32 | |
TestTimer | 0 | 0 | 10 | |
TestThreadExecutor | 0.8 | 0.89 | 31 | |
TestSymbolDatabase | 0.81 | 0.82 | 233 | |
Macro | 0.68 | 0.71 | 86 | simplecpp |
TestVarID | 0 | 0 | 33 | |
TestValueFlow | 0.77 | 0.79 | 64 | |
LongFitsIntoSizeTMinusOne<false> | 0 | 0 | 0 | tinyxml2 |
XMLConstHandle | -0.24 | -0.25 | 12 | tinyxml2 |
XMLHandle | -0.24 | -0.25 | 12 | tinyxml2 |
TestUnusedFunctions | 0.88 | 0.92 | 24 | |
CheckUnusedFunctions+FunctionDecl | 1 | 0 | 0 | |
CheckUnusedFunctions+FunctionUsage | 0.25 | 0 | 0 | |
TestVaarg | 0.78 | 0.88 | 16 | |
TestUnusedVar | 0.98 | 0.99 | 23 | |
TestUnusedPrivateFunction | 0.94 | 0.97 | 21 | |
TestMemleakNoVar | 0.67 | 0.8 | 26 | |
TestMemleakStructMember | 0.91 | 0.95 | 21 | |
TestMemleakInClass | 0.94 | 0.97 | 22 | |
TestNullPointer | 0.96 | 0.98 | 45 | |
TestMemleakWindows | 0.67 | 0.8 | 23 | |
TestMemleakGLib | 0.6 | 0.75 | 38 | |
TestMathLib | 0 | 0 | 53 | |
TestLibrary | 0.92 | 0.96 | 117 | |
TestLeakAutoVarWindows | 0.5 | 0.67 | 22 | |
TestMemleakInFunction | 0.98 | 0.99 | 76 | |
TestMemleak | 0.6 | 0.75 | 25 | |
Scope+UsingInfo | 0 | 0 | 0 | |
TestSimplifyTemplate | 0.93 | 0.94 | 31 | |
TestSamples | 0 | 0 | 42 | |
TestPreprocessor | 0.92 | 0.93 | 79 | |
TestSizeof | 0.85 | 0.92 | 17 | |
TestSimplifyTypedef | 0.99 | 0.99 | 30 | |
TestSimplifyTokens | 0.97 | 0.98 | 49 | |
TestOther | 0.98 | 0.99 | 58 | |
TestOptions | 0 | 0 | 9 | |
TestFunctions | 0.85 | 0.88 | 39 | |
TestPostfixOperator | 0.83 | 0.91 | 18 | |
TestPathMatch | 0.78 | 0.81 | 11 | |
TestPath | 0 | 0 | 20 |
Namespaces Metrics
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Namespaces | # lines of code | # IL instruction | # Types | # lines of comment | % Comment | % Coverage | Afferent Coupling | Efferent Coupling |
---|---|---|---|---|---|---|---|---|
cli::GlobalNamespace | 1198 | 16 | 64 | 0 | 0 | - | 1 | 6 |
cli::ValueFlow | 63 | 0 | 4 | 0 | 0 | - | 1 | 1 |
cli::cppcheck | 22 | 0 | 2 | 0 | 0 | - | 1 | 1 |
cli::simplecpp | 75 | 2 | 7 | 0 | 0 | - | 1 | 1 |
cli::anonymous_namespace{cppcheckexecuto r.cpp} | 137 | 1 | 1 | 0 | 0 | - | 0 | 1 |
cppcheck::GlobalNamespace | 29706 | 1156 | 131 | 0 | 0 | - | 29 | 11 |
cppcheck::simplecpp | 1283 | 45 | 11 | 0 | 0 | - | 2 | 2 |
cppcheck::anonymous_namespace{simplecpp .cpp} | 126 | 7 | 0 | 0 | 0 | - | 0 | 2 |
cppcheck::tinyxml2 | 1507 | 30 | 31 | 0 | 0 | - | 3 | 0 |
cppcheck::ValueFlow | 95 | 2 | 4 | 0 | 0 | - | 2 | 2 |
cppcheck::cppcheck | 185 | 2 | 2 | 0 | 0 | - | 1 | 2 |
cppcheck::anonymous_namespace{check64bit .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkasser t.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkautov ariables.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkbool .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkboost .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkbuffe roverrun.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkclass .cpp} | 2 | 0 | 1 | 0 | 0 | - | 1 | 2 |
cppcheck::anonymous_namespace{checkcondi tion.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkfunct ions.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkstrin g.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkexcep tionsafety.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkio .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 2 |
cppcheck::anonymous_namespace{checkleaka utovar.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkmemor yleak.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 2 |
cppcheck::anonymous_namespace{checknullp ointer.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 2 |
cppcheck::anonymous_namespace{checkother .cpp} | 12 | 2 | 0 | 0 | 0 | - | 0 | 2 |
cppcheck::anonymous_namespace{checkpostf ixoperator.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checksizeo f.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkstl .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 2 |
cppcheck::anonymous_namespace{checktype .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkunini tvar.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkunuse dfunctions.cpp} | 3 | 0 | 1 | 0 | 0 | - | 1 | 1 |
cppcheck::anonymous_namespace{checkunuse dvar.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{checkvaarg .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{importproj ect.cpp} | 44 | 5 | 2 | 0 | 0 | - | 1 | 3 |
cppcheck::anonymous_namespace{settings .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
cppcheck::anonymous_namespace{symboldata base.cpp} | 9 | 2 | 0 | 0 | 0 | - | 0 | 2 |
cppcheck::anonymous_namespace{timer.cpp} | 1 | 0 | 0 | 0 | 0 | - | 0 | 2 |
cppcheck::anonymous_namespace{tokenize .cpp} | 13 | 0 | 2 | 0 | 0 | - | 1 | 2 |
cppcheck::anonymous_namespace{valueflow .cpp} | 16 | 0 | 1 | 0 | 0 | - | 1 | 3 |
testrunner::GlobalNamespace | 28970 | 89 | 189 | 0 | 0 | - | 53 | 7 |
testrunner::cppcheck | 22 | 0 | 2 | 0 | 0 | - | 1 | 1 |
testrunner::ValueFlow | 63 | 0 | 4 | 0 | 0 | - | 1 | 1 |
testrunner::simplecpp | 75 | 2 | 7 | 0 | 0 | - | 1 | 1 |
testrunner::anonymous_namespace{cppcheck executor.cpp} | 137 | 1 | 1 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{test64bi t.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testasse rt.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testauto variables.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testbool .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testboos t.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::tinyxml2 | 309 | 3 | 28 | 0 | 0 | - | 1 | 0 |
testrunner::anonymous_namespace{testbuff eroverrun.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testchar var.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testclas s.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testcmdl ineparser.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testcond ition.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testcons tructors.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testcppc heck.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testerro rlogger.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testexce ptionsafety.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testfile lister.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testgarb age.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testinco mpletestatement.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testio .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testleak autovar.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testlibr ary.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testmath lib.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testmeml eak.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testnull pointer.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testfunc tions.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testopti ons.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testothe r.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testpath .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testpath match.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testpost fixoperator.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testprep rocessor.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testsamp les.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testsimp lifytemplate.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testsimp lifytokens.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testsimp lifytypedef.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testsize of.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{teststl .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{teststri ng.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testsupp ressions.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testsymb oldatabase.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testthre adexecutor.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testtime r.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testtoke n.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testtoke nize.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testtoke nlist.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testtype .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testunin itvar.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testunus edfunctions.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testunus edprivfunc.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testunus edvar.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testvaar g.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testvalu eflow.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
testrunner::anonymous_namespace{testvari d.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Project Rules | 812 |
Quality Gates | 812 |
|
![]() | Quality Gate Pass: Percentage Code Coverage |
Scalar Result: N/A %
![]() | Quality Gate Pass: Percentage Coverage on New Code |
Scalar Result: N/A %
![]() | Quality Gate Pass: Percentage Coverage on Refactored Code |
Scalar Result: N/A %
![]() | Quality Gate Pass: Blocker Issues |
No issue matched
![]() | Quality Gate Warn: Critical Issues |
5 issues matched
5 issues | Severity | Debt | Annual Interest | Full Name |
---|---|---|---|---|
Critical issue on: Tokenizer | Critical | 1d 2h | 2h 0min | Rule violated: Avoid types too big |
Critical issue on: TestTokenizer | Critical | 1d 2h | 2h 0min | Rule violated: Avoid types too big |
Critical issue on: TestSymbolDatabase | Critical | 1d 2h | 2h 0min | Rule violated: Avoid types too big |
Critical issue on: TestTokenizer | Critical | 1d 2h | 2h 0min | Rule violated: Avoid types with too many methods |
Critical issue on: Tokenizer.simplifyTypedef() | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Statistics
Stat | Severity | Debt | Annual Interest |
---|---|---|---|
Sum: | - | 5d 6h | 1d 2h |
Average: | - | 1d 1h | 2h 0min |
Minimum: | - | 6h 0min | 2h 0min |
Maximum: | - | 1d 2h | 2h 0min |
Standard deviation: | - | 1h 36min | 0min 0s |
Variance: | - | 1 152d | 0min 0s |
![]() | Quality Gate Pass: New Blocker / Critical / High Issues |
No issue matched
![]() | Quality Gate Fail: Critical Rules Violated |
3 rules matched
3 rules | issues | Full Name |
---|---|---|
Avoid types too big | 66 issues | Rule |
Avoid methods too big, too complex | 433 issues | Rule |
Avoid methods with too many parameters | 32 issues | Rule |
Statistics
Stat | issues |
---|---|
Sum: | 531 |
Average: | 177 |
Minimum: | 32 |
Maximum: | 433 |
Standard deviation: | 181.55 |
Variance: | 32 961 |
![]() | Quality Gate Pass: Percentage Debt |
Scalar Result: 13.6 %
![]() | Quality Gate Pass: New Debt since Baseline |
Scalar Result: 0 man-days
![]() | Quality Gate Fail: Debt Rating per Namespace |
3 namespaces matched
3 namespaces | debtRating | debtRatio | devTimeInManDay | debtInManDay | issues | Full Name |
---|---|---|---|---|---|---|
cppcheck | D | 39.52 | 1d 0h | 3h 31min | 3 issues | cppcheck |
cppcheck | D | 39.52 | 1d 0h | 3h 31min | 3 issues | cppcheck |
tinyxml2 | D | 20.22 | 14d 7h | 3d 0h | 129 issues | tinyxml2 |
Statistics
Stat | debtRating | debtRatio | devTimeInManDay | debtInManDay | issues |
---|---|---|---|---|---|
Sum: | - | 99.26 | 17d 1h | 3d 7h | 135 |
Average: | - | 33.09 | 5d 5h | 1d 2h | 45 |
Minimum: | - | 20.22 | 1d 0h | 3h 31min | 3 |
Maximum: | - | 39.52 | 14d 7h | 3d 0h | 129 |
Standard deviation: | - | 9.1 | 6d 4h | 1d 1h | 59.4 |
Variance: | - | 82.82 | 1 232 632d | 42 944d | 3 528 |
![]() | Quality Gate Pass: New Annual Interest since Baseline |
Scalar Result: 0 man-days
Project Rules | 251213 |
Code Smells | 063 |
|
![]() | Critical Rule Violated: Avoid types too big |
• How to Fix Issues: Types with many lines of code should be split in a group of smaller types. To refactor a God Class you'll need patience, and you might even need to recreate everything from scratch. Here are a few refactoring advices: • The logic in the God Class must be splitted in smaller classes. These smaller classes can eventually become private classes nested in the original God Class, whose instances objects become composed of instances of smaller nested classes. • Smaller classes partitioning should be driven by the multiple responsibilities handled by the God Class. To identify these responsibilities it often helps to look for subsets of methods strongly coupled with subsets of fields. • If the God Class contains way more logic than states, a good option can be to define one or several static classes that contains no static field but only pure static methods. A pure static method is a function that computes a result only from inputs parameters, it doesn't read nor assign any static or instance field. The main advantage of pure static methods is that they are easily testable. • Try to maintain the interface of the God Class at first and delegate calls to the new extracted classes. In the end the God Class should be a pure facade without its own logic. Then you can keep it for convenience or throw it away and start to use the new classes only. • Unit Tests can help: write tests for each method before extracting it to ensure you don't break functionality. The estimated Debt, which means the effort to fix such issue, varies linearly from 1 hour for a 200 lines of code type, up to 10 hours for a type with 2.000 or more lines of code. In Debt and Interest computation, this rule takes account of the fact that static types with no mutable fields are just a collection of static methods that can be easily splitted and moved from one type to another.
66 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
66 types | locJustMyCode | Methods | Fields | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|
Tokenizer | 5 459 | 147 methods | 9 fields | 1d 2h | 2h 0min | Tokenizer |
TestTokenizer | 2 750 | 366 methods | 4 fields | 1d 2h | 2h 0min | TestTokenizer |
TestSymbolDatabase | 2 472 | 201 methods | 7 fields | 1d 2h | 2h 0min | TestSymbolDatabase |
SymbolDatabase | 1 704 | 46 methods | 9 fields | 1d 0h | 1h 40min | SymbolDatabase |
TestOther | 1 644 | 137 methods | 1 field | 1d 0h | 1h 36min | TestOther |
CheckOther | 1 496 | 98 methods | no field | 7h 28min | 1h 26min | CheckOther |
TestClass | 1 349 | 158 methods | 2 fields | 6h 44min | 1h 17min | TestClass |
CheckIO | 1 188 | 37 methods | no field | 5h 56min | 1h 6min | CheckIO |
TestSimplifyTokens | 1 179 | 115 methods | 4 fields | 5h 53min | 1h 6min | TestSimplifyTokens |
CheckClass | 1 102 | 69 methods | 1 field | 5h 30min | 1h 1min | CheckClass |
TestMemleakInFunction | 1 020 | 171 methods | 3 fields | 5h 6min | 55min | TestMemleakInFunction |
TestBufferOverrun | 1 009 | 143 methods | 1 field | 5h 2min | 55min | TestBufferOverrun |
CheckMemoryLeakInFunction | 1 006 | 15 methods | 1 field | 5h 1min | 54min | CheckMemoryLeakInFunction |
TestUnusedVar | 991 | 139 methods | 1 field | 4h 57min | 53min | TestUnusedVar |
TestIO | 975 | 34 methods | 1 field | 4h 52min | 52min | TestIO |
TestUninitVar | 944 | 47 methods | 1 field | 4h 43min | 50min | TestUninitVar |
Token | 933 | 158 methods | 18 fields | 4h 39min | 50min | Token |
CheckBufferOverrun | 924 | 47 methods | 1 field | 4h 37min | 49min | CheckBufferOverrun |
TestMathLib | 876 | 36 methods | no field | 4h 22min | 46min | TestMathLib |
CheckStl | 845 | 52 methods | no field | 4h 13min | 44min | CheckStl |
TestSimplifyTypedef | 822 | 133 methods | 3 fields | 4h 6min | 42min | TestSimplifyTypedef |
Library | 807 | 72 methods | 24 fields | 4h 2min | 41min | Library |
TemplateSimplifier | 802 | 19 methods | no field | 4h 0min | 41min | TemplateSimplifier |
TestValueFlow | 774 | 41 methods | 1 field | 3h 52min | 39min | TestValueFlow |
TestPreprocessor | 772 | 148 methods | 2 fields | 3h 51min | 39min | TestPreprocessor |
TestStl | 745 | 87 methods | 1 field | 3h 43min | 37min | TestStl |
CheckUninitVar | 656 | 25 methods | no field | 3h 16min | 31min | CheckUninitVar |
MathLib | 649 | 40 methods | no field | 3h 14min | 31min | MathLib |
TestNullPointer | 649 | 56 methods | 1 field | 3h 14min | 31min | TestNullPointer |
TestCmdlineParser | 627 | 100 methods | 2 fields | 3h 8min | 29min | TestCmdlineParser |
TestVarID | 602 | 144 methods | no field | 3h 0min | 28min | TestVarID |
TestConstructors | 600 | 129 methods | 1 field | 3h 0min | 28min | TestConstructors |
TestGarbage | 591 | 184 methods | 1 field | 2h 57min | 27min | TestGarbage |
TestToken | 583 | 53 methods | 6 fields | 2h 54min | 27min | TestToken |
TestCondition | 568 | 37 methods | 2 fields | 2h 50min | 26min | TestCondition |
CheckCondition | 532 | 32 methods | no field | 2h 39min | 23min | CheckCondition |
Scope | 459 | 26 methods | 21 fields | 2h 17min | 18min | Scope |
TokenList | 450 | 27 methods | 4 fields | 2h 15min | 18min | simplecpp.TokenList |
CheckUnusedVar | 430 | 18 methods | 2 fields | 2h 9min | 17min | CheckUnusedVar |
Macro | 400 | 20 methods | 8 fields | 2h 0min | 15min | simplecpp.Macro |
CmdLineParser | 393 | 12 methods | 7 fields | 1h 57min | 14min | CmdLineParser |
CmdLineParser | 393 | 12 methods | 7 fields | 1h 57min | 14min | CmdLineParser |
TestSimplifyTemplate | 346 | 75 methods | 1 field | 1h 43min | 11min | TestSimplifyTemplate |
CppCheck | 336 | 27 methods | 10 fields | 1h 40min | 10min | CppCheck |
TestLeakAutoVar | 328 | 67 methods | 1 field | 1h 38min | 10min | TestLeakAutoVar |
CheckLeakAutoVar | 320 | 19 methods | no field | 1h 36min | 9min | CheckLeakAutoVar |
TestLibrary | 318 | 27 methods | 1 field | 1h 35min | 9min | TestLibrary |
TestAutoVariables | 297 | 51 methods | 1 field | 1h 29min | 8min | TestAutoVariables |
CheckNullPointer | 294 | 19 methods | no field | 1h 28min | 8min | CheckNullPointer |
TestBool | 289 | 28 methods | 1 field | 1h 26min | 7min | TestBool |
XMLElement | 273 | 65 methods | 2 fields | 1h 21min | 6min | tinyxml2.XMLElement |
Function | 267 | 59 methods | 15 fields | 1h 20min | 6min | Function |
Preprocessor | 265 | 24 methods | 8 fields | 1h 19min | 6min | Preprocessor |
CheckIO+ArgumentInfo | 262 | 8 methods | 8 fields | 1h 18min | 6min | CheckIO+ArgumentInfo |
TokenList | 251 | 25 methods | 6 fields | 1h 15min | 5min | TokenList |
TestSizeof | 240 | 15 methods | 1 field | 1h 12min | 4min 37s | TestSizeof |
XMLDocument | 237 | 38 methods | 14 fields | 1h 11min | 4min 25s | tinyxml2.XMLDocument |
TestFunctions | 236 | 29 methods | 1 field | 1h 10min | 4min 21s | TestFunctions |
TestErrorLogger | 229 | 27 methods | 2 fields | 1h 8min | 3min 54s | TestErrorLogger |
ErrorLogger+ErrorMessage | 223 | 14 methods | 8 fields | 1h 6min | 3min 30s | ErrorLogger+ErrorMessage |
CheckBool | 223 | 28 methods | no field | 1h 6min | 3min 30s | CheckBool |
XMLNode | 218 | 54 methods | 10 fields | 1h 5min | 3min 10s | tinyxml2.XMLNode |
CppCheckExecutor | 214 | 15 methods | 6 fields | 1h 4min | 2min 55s | CppCheckExecutor |
CppCheckExecutor | 214 | 15 methods | 6 fields | 1h 4min | 2min 55s | CppCheckExecutor |
CheckAutoVariables | 212 | 28 methods | no field | 1h 3min | 2min 47s | CheckAutoVariables |
CheckUnusedFunctions | 202 | 14 methods | 4 fields | 1h 0min | 2min 7s | CheckUnusedFunctions |
![]() | Rule Violated: Avoid types with too many methods |
• How to Fix Issues: To refactor properly a God Class please read HowToFix advices from the default rule Types to Big. // The estimated Debt, which means the effort to fix such issue, varies linearly from 1 hour for a type with 20 methods, up to 10 hours for a type with 200 or more methods. In Debt and Interest computation, this rule takes account of the fact that static types with no mutable fields are just a collection of static methods that can be easily splitted and moved from one type to another.
100 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
100 types | nbMethods | instanceMethods | staticMethods | # lines of code (LOC) | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|
TestTokenizer | 363 | 363 methods | no method | 2 750 | 1d 2h | 2h 0min | TestTokenizer |
TestSymbolDatabase | 198 | 196 methods | 2 methods | 2 472 | 1d 1h | 1h 58min | TestSymbolDatabase |
TestGarbage | 181 | 181 methods | no method | 591 | 1d 1h | 1h 47min | TestGarbage |
TestMemleakInFunction | 168 | 168 methods | no method | 1 020 | 1d 0h | 1h 39min | TestMemleakInFunction |
Token | 158 | 137 methods | 21 methods | 154 | 7h 54min | 1h 32min | Token |
Token | 158 | 137 methods | 21 methods | 933 | 7h 54min | 1h 32min | Token |
Token | 158 | 137 methods | 21 methods | 154 | 7h 54min | 1h 32min | Token |
TestClass | 155 | 155 methods | no method | 1 349 | 7h 45min | 1h 30min | TestClass |
Tokenizer | 147 | 135 methods | 12 methods | 10 | 7h 21min | 1h 25min | Tokenizer |
Tokenizer | 147 | 135 methods | 12 methods | 5 459 | 7h 21min | 1h 25min | Tokenizer |
Tokenizer | 147 | 135 methods | 12 methods | 10 | 7h 21min | 1h 25min | Tokenizer |
TestPreprocessor | 145 | 145 methods | no method | 772 | 7h 15min | 1h 23min | TestPreprocessor |
TestVarID | 141 | 141 methods | no method | 602 | 7h 3min | 1h 21min | TestVarID |
TestBufferOverrun | 140 | 140 methods | no method | 1 009 | 7h 0min | 1h 20min | TestBufferOverrun |
TestUnusedVar | 136 | 136 methods | no method | 991 | 6h 48min | 1h 18min | TestUnusedVar |
TestOther | 134 | 134 methods | no method | 1 644 | 6h 42min | 1h 16min | TestOther |
TestSimplifyTypedef | 130 | 130 methods | no method | 822 | 6h 30min | 1h 14min | TestSimplifyTypedef |
TestConstructors | 126 | 126 methods | no method | 600 | 6h 18min | 1h 11min | TestConstructors |
TestSimplifyTokens | 112 | 112 methods | no method | 1 179 | 5h 36min | 1h 2min | TestSimplifyTokens |
TestCmdlineParser | 97 | 97 methods | no method | 627 | 4h 51min | 52min | TestCmdlineParser |
CheckOther | 95 | 92 methods | 3 methods | 1 496 | 4h 45min | 51min | CheckOther |
CheckOther | 95 | 92 methods | 3 methods | 95 | 4h 45min | 51min | CheckOther |
TestStl | 84 | 84 methods | no method | 745 | 4h 12min | 43min | TestStl |
TestSimplifyTemplate | 72 | 72 methods | no method | 346 | 3h 36min | 36min | TestSimplifyTemplate |
Library | 69 | 64 methods | 5 methods | 49 | 3h 27min | 34min | Library |
Library | 69 | 64 methods | 5 methods | 807 | 3h 27min | 34min | Library |
Library | 69 | 64 methods | 5 methods | 49 | 3h 27min | 34min | Library |
CheckClass | 66 | 57 methods | 9 methods | 1 102 | 3h 18min | 32min | CheckClass |
CheckClass | 66 | 57 methods | 9 methods | 51 | 3h 18min | 32min | CheckClass |
XMLElement | 65 | 64 methods | 1 method | 273 | 3h 15min | 31min | tinyxml2.XMLElement |
XMLElement | 65 | 64 methods | 1 method | 51 | 3h 15min | 31min | tinyxml2.XMLElement |
TestLeakAutoVar | 64 | 64 methods | no method | 328 | 3h 12min | 30min | TestLeakAutoVar |
Function | 56 | 55 methods | 1 method | 267 | 2h 48min | 25min | Function |
Function | 56 | 55 methods | 1 method | 64 | 2h 48min | 25min | Function |
XMLNode | 54 | 53 methods | 1 method | 218 | 2h 42min | 24min | tinyxml2.XMLNode |
XMLNode | 54 | 53 methods | 1 method | 35 | 2h 42min | 24min | tinyxml2.XMLNode |
TestNullPointer | 53 | 53 methods | no method | 649 | 2h 39min | 23min | TestNullPointer |
TestToken | 50 | 49 methods | 1 method | 583 | 2h 30min | 21min | TestToken |
CheckStl | 49 | 48 methods | 1 method | 845 | 2h 27min | 21min | CheckStl |
CheckStl | 49 | 48 methods | 1 method | 48 | 2h 27min | 21min | CheckStl |
TestAutoVariables | 48 | 48 methods | no method | 297 | 2h 24min | 20min | TestAutoVariables |
Variable | 47 | 47 methods | no method | 167 | 2h 21min | 19min | Variable |
Variable | 47 | 47 methods | no method | 55 | 2h 21min | 19min | Variable |
SymbolDatabase | 45 | 44 methods | 1 method | 1 704 | 2h 15min | 18min | SymbolDatabase |
SymbolDatabase | 45 | 44 methods | 1 method | 4 | 2h 15min | 18min | SymbolDatabase |
CheckBufferOverrun | 44 | 41 methods | 3 methods | 924 | 2h 12min | 17min | CheckBufferOverrun |
CheckBufferOverrun | 44 | 41 methods | 3 methods | 34 | 2h 12min | 17min | CheckBufferOverrun |
TestUninitVar | 44 | 44 methods | no method | 944 | 2h 12min | 17min | TestUninitVar |
XMLDocument | 38 | 37 methods | 1 method | 237 | 1h 54min | 13min | tinyxml2.XMLDocument |
TestValueFlow | 38 | 38 methods | no method | 774 | 1h 54min | 13min | TestValueFlow |
XMLDocument | 38 | 37 methods | 1 method | 18 | 1h 54min | 13min | tinyxml2.XMLDocument |
MathLib | 37 | no method | 37 methods | 3 | 1h 51min | 13min | MathLib |
MathLib | 37 | no method | 37 methods | 649 | 1h 51min | 13min | MathLib |
MathLib | 37 | no method | 37 methods | 3 | 1h 51min | 13min | MathLib |
XMLPrinter | 36 | 36 methods | no method | 182 | 1h 48min | 12min | tinyxml2.XMLPrinter |
XMLPrinter | 36 | 36 methods | no method | 6 | 1h 48min | 12min | tinyxml2.XMLPrinter |
CheckIO | 34 | 31 methods | 3 methods | 1 188 | 1h 42min | 11min | CheckIO |
TestCondition | 34 | 34 methods | no method | 568 | 1h 42min | 11min | TestCondition |
CheckIO | 34 | 31 methods | 3 methods | 31 | 1h 42min | 11min | CheckIO |
TestMathLib | 33 | 33 methods | no method | 876 | 1h 39min | 10min | TestMathLib |
TestMemleakInClass | 32 | 32 methods | no method | 170 | 1h 36min | 9min | TestMemleakInClass |
TestUnusedPrivateFunction | 32 | 32 methods | no method | 131 | 1h 36min | 9min | TestUnusedPrivateFunction |
TestIO | 31 | 31 methods | no method | 975 | 1h 33min | 9min | TestIO |
CheckCondition | 29 | 28 methods | 1 method | 532 | 1h 27min | 7min | CheckCondition |
CheckCondition | 29 | 28 methods | 1 method | 27 | 1h 27min | 7min | CheckCondition |
TestPathMatch | 28 | 28 methods | no method | 78 | 1h 24min | 7min | TestPathMatch |
TokenList | 27 | 27 methods | no method | 27 | 1h 21min | 6min | simplecpp.TokenList |
TokenList | 27 | 27 methods | no method | 450 | 1h 21min | 6min | simplecpp.TokenList |
XMLAttribute | 27 | 27 methods | no method | 76 | 1h 21min | 6min | tinyxml2.XMLAttribute |
TokenList | 27 | 27 methods | no method | 27 | 1h 21min | 6min | simplecpp.TokenList |
XMLAttribute | 27 | 27 methods | no method | 22 | 1h 21min | 6min | tinyxml2.XMLAttribute |
CppCheck | 26 | 24 methods | 2 methods | 2 | 1h 18min | 5min | CppCheck |
CppCheck | 26 | 24 methods | 2 methods | 336 | 1h 18min | 5min | CppCheck |
CppCheck | 26 | 24 methods | 2 methods | 2 | 1h 18min | 5min | CppCheck |
TestFunctions | 26 | 26 methods | no method | 236 | 1h 18min | 5min | TestFunctions |
TokenList | 25 | 23 methods | 2 methods | 9 | 1h 15min | 5min | TokenList |
TokenList | 25 | 23 methods | 2 methods | 251 | 1h 15min | 5min | TokenList |
CheckAutoVariables | 25 | 17 methods | 8 methods | 212 | 1h 15min | 5min | CheckAutoVariables |
CheckBool | 25 | 24 methods | 1 method | 223 | 1h 15min | 5min | CheckBool |
TokenList | 25 | 23 methods | 2 methods | 9 | 1h 15min | 5min | TokenList |
CheckAutoVariables | 25 | 17 methods | 8 methods | 18 | 1h 15min | 5min | CheckAutoVariables |
CheckBool | 25 | 24 methods | 1 method | 23 | 1h 15min | 5min | CheckBool |
TestBool | 25 | 25 methods | no method | 289 | 1h 15min | 5min | TestBool |
TestErrorLogger | 24 | 24 methods | no method | 229 | 1h 12min | 4min 37s | TestErrorLogger |
TestLibrary | 24 | 24 methods | no method | 318 | 1h 12min | 4min 37s | TestLibrary |
TestUnusedFunctions | 24 | 24 methods | no method | 135 | 1h 12min | 4min 37s | TestUnusedFunctions |
Preprocessor | 23 | 20 methods | 3 methods | 2 | 1h 9min | 3min 58s | Preprocessor |
Scope | 23 | 23 methods | no method | 459 | 1h 9min | 3min 58s | Scope |
CheckSizeof | 23 | 22 methods | 1 method | 198 | 1h 9min | 3min 58s | CheckSizeof |
Preprocessor | 23 | 20 methods | 3 methods | 265 | 1h 9min | 3min 58s | Preprocessor |
Preprocessor | 23 | 20 methods | 3 methods | 2 | 1h 9min | 3min 58s | Preprocessor |
Scope | 23 | 23 methods | no method | 13 | 1h 9min | 3min 58s | Scope |
CheckSizeof | 23 | 22 methods | 1 method | 22 | 1h 9min | 3min 58s | CheckSizeof |
CheckUninitVar | 22 | 21 methods | 1 method | 656 | 1h 6min | 3min 18s | CheckUninitVar |
XMLUtil | 22 | no method | 22 methods | 160 | 1h 6min | 3min 18s | tinyxml2.XMLUtil |
TestMemleakStructMember | 22 | 22 methods | no method | 103 | 1h 6min | 3min 18s | TestMemleakStructMember |
CheckUninitVar | 22 | 21 methods | 1 method | 15 | 1h 6min | 3min 18s | CheckUninitVar |
XMLUtil | 22 | no method | 22 methods | 22 | 1h 6min | 3min 18s | tinyxml2.XMLUtil |
Variables | 21 | 21 methods | no method | 124 | 1h 3min | 2min 39s | Variables |
TestFixture | 21 | 20 methods | 1 method | 94 | 1h 3min | 2min 39s | TestFixture |
![]() | Rule Violated: Avoid types with too many fields |
• How to Fix Issues: To refactor such type and increase code quality and maintainability, certainly you'll have to group subsets of fields into smaller types and dispatch the logic implemented into the methods into these smaller types. More refactoring advices can be found in the default rule Types to Big, HowToFix section. The estimated Debt, which means the effort to fix such issue, varies linearly from 1 hour for a type with 15 fields, to up to 10 hours for a type with 200 or more fields.
14 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
14 types | instanceFields | staticFields | methodsAssigningFields | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|
Settings | 41 fields | no field | 22 methods | 2h 15min | 18min | Settings |
Settings | 41 fields | no field | 43 methods | 2h 15min | 18min | Settings |
Settings | 41 fields | no field | 108 methods | 2h 15min | 18min | Settings |
Library | 24 fields | no field | no method | 1h 26min | 7min | Library |
Library | 24 fields | no field | 2 methods | 1h 26min | 7min | Library |
Library | 24 fields | no field | no method | 1h 26min | 7min | Library |
Scope | 21 fields | no field | 115 methods | 1h 17min | 5min | Scope |
Scope | 21 fields | no field | 4 methods | 1h 17min | 5min | Scope |
Token | 18 fields | no field | 23 methods | 1h 8min | 3min 54s | Token |
Platform | 18 fields | no field | no method | 1h 8min | 3min 54s | cppcheck.Platform |
Token | 18 fields | no field | 78 methods | 1h 8min | 3min 54s | Token |
Platform | 18 fields | no field | 49 methods | 1h 8min | 3min 54s | cppcheck.Platform |
Token | 18 fields | no field | 23 methods | 1h 8min | 3min 54s | Token |
Platform | 18 fields | no field | 10 methods | 1h 8min | 3min 54s | cppcheck.Platform |
![]() | Critical Rule Violated: Avoid methods too big, too complex |
• How to Fix Issues: A large and complex method should be split in smaller methods, or even one or several classes can be created for that. During this process it is important to question the scope of each variable local to the method. This can be an indication if such local variable will become an instance field of the newly created class(es). Large switch…case structures might be refactored through the help of a set of types that implement a common interface, the interface polymorphism playing the role of the switch cases tests. Unit Tests can help: write tests for each method before extracting it to ensure you don't break functionality. The estimated Debt, which means the effort to fix such issue, varies from 40 minutes to 8 hours, linearly from a weighted complexity score.
433 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 433 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
433 methods | # lines of code (LOC) | Cyclomatic Complexity (CC) | complexityScore | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|
checkFormatString(constToken*const ,constToken*const,constToken*,constbool ,constbool) | 672 | 474 | 810 | 1d 0h | 40min | CheckIO.checkFormatString (constToken*const,constToken*const ,constToken*,constbool,constbool) |
simplifyTypedef() | 695 | 321 | 668 | 1d 0h | 40min | Tokenizer.simplifyTypedef() |
run() | 357 | 357 | 535 | 1d 0h | 40min | TestTokenizer.run() |
getcode(constToken*,std::list <constToken*>,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool ,unsignedint) | 417 | 265 | 473 | 1d 0h | 40min | CheckMemoryLeakInFunction.getcode (constToken*,std::list<constToken*> ,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool ,unsignedint) |
createSymbolDatabaseFindAllScopes() | 458 | 224 | 453 | 1d 0h | 40min | SymbolDatabase .createSymbolDatabaseFindAllScopes() |
checkFunctionVariableUsage_iterateScopes (constScope*const,Variables&,bool) | 308 | 234 | 388 | 7h 45min | 40min | CheckUnusedVar .checkFunctionVariableUsage_iterateScope s(constScope*const,Variables&,bool) |
valueFlowForward(Token*const ,constToken*const,constVariable*const ,constunsignedint,std::list <ValueFlow::Value>,constbool,constbool ,TokenList*const,ErrorLogger*const ,constSettings*const) | 333 | 216 | 382 | 7h 38min | 40min | __Globals.valueFlowForward(Token*const ,constToken*const,constVariable*const ,constunsignedint,std::list <ValueFlow::Value>,constbool,constbool ,TokenList*const,ErrorLogger*const ,constSettings*const) |
setTokenValue(Token* ,constValueFlow::Value&,constSettings*) | 278 | 216 | 355 | 7h 6min | 40min | __Globals.setTokenValue(Token* ,constValueFlow::Value&,constSettings*) |
ParseFromArgs(int,constchar*const*) | 379 | 160 | 349 | 6h 59min | 40min | CmdLineParser.ParseFromArgs(int ,constchar*const*) |
ParseFromArgs(int,constchar*const*) | 379 | 160 | 349 | 6h 59min | 40min | CmdLineParser.ParseFromArgs(int ,constchar*const*) |
simplifycode(Token*) | 332 | 143 | 309 | 6h 11min | 40min | CheckMemoryLeakInFunction.simplifycode (Token*) |
load(consttinyxml2::XMLDocument&) | 316 | 131 | 289 | 5h 48min | 40min | Library.load(consttinyxml2::XMLDocument& ) |
checkScopeForVariable(constToken* ,constVariable&,bool*const,bool*const ,CheckUninitVar::Alloc*const ,conststd::string&) | 229 | 174 | 288 | 5h 46min | 40min | CheckUninitVar.checkScopeForVariable (constToken*,constVariable&,bool*const ,bool*const,CheckUninitVar::Alloc*const ,conststd::string&) |
run() | 193 | 191 | 287 | 5h 45min | 40min | TestSymbolDatabase.run() |
simplifyKnownVariablesSimplify(Token** ,Token*,unsignedint,conststd::string& ,std::string&,unsignedint,bool ,constToken*const,int) | 238 | 159 | 278 | 5h 34min | 40min | Tokenizer.simplifyKnownVariablesSimplify (Token**,Token*,unsignedint ,conststd::string&,std::string& ,unsignedint,bool,constToken*const,int) |
run() | 186 | 178 | 271 | 5h 26min | 40min | TestGarbage.run() |
preprocess(simplecpp::TokenList& ,constsimplecpp::TokenList&,std::vector <std::string>&,std::map<std::string ,TokenList*>&,constsimplecpp::DUI& ,OutputList*,std::list<MacroUsage>*) | 273 | 125 | 261 | 5h 14min | 40min | simplecpp.__Globals.preprocess (simplecpp::TokenList& ,constsimplecpp::TokenList&,std::vector <std::string>&,std::map<std::string ,TokenList*>&,constsimplecpp::DUI& ,OutputList*,std::list<MacroUsage>*) |
run() | 165 | 163 | 245 | 4h 55min | 40min | TestMemleakInFunction.run() |
checkScope(constToken*const,VarInfo* ,std::set<unsignedint>) | 200 | 129 | 229 | 4h 36min | 40min | CheckLeakAutoVar.checkScope (constToken*const,VarInfo*,std::set <unsignedint>) |
checkFileUsage() | 177 | 138 | 226 | 4h 33min | 40min | CheckIO.checkFileUsage() |
setVarIdPass1() | 158 | 146 | 225 | 4h 31min | 40min | Tokenizer.setVarIdPass1() |
testScanfArgument() | 440 | 1 | 221 | 4h 27min | 40min | TestIO.testScanfArgument() |
simplifyVarDecl(Token*,constToken*const ,constbool) | 189 | 125 | 219 | 4h 24min | 40min | Tokenizer.simplifyVarDecl(Token* ,constToken*const,constbool) |
run() | 141 | 139 | 209 | 4h 12min | 40min | TestClass.run() |
run() | 139 | 139 | 208 | 4h 11min | 40min | TestVarID.run() |
run() | 138 | 138 | 207 | 4h 10min | 40min | TestPreprocessor.run() |
run() | 140 | 137 | 207 | 4h 10min | 40min | TestBufferOverrun.run() |
run() | 134 | 133 | 200 | 4h 2min | 40min | TestUnusedVar.run() |
checkRedundantAssignment() | 172 | 114 | 200 | 4h 2min | 40min | CheckOther.checkRedundantAssignment() |
findFunction(constToken*,bool) | 150 | 120 | 195 | 3h 56min | 38min | Scope.findFunction(constToken*,bool) |
run() | 129 | 129 | 193 | 3h 53min | 38min | TestOther.run() |
run() | 128 | 126 | 190 | 3h 50min | 37min | TestSimplifyTypedef.run() |
run() | 126 | 124 | 187 | 3h 46min | 37min | TestConstructors.run() |
ArgumentInfo(constToken*,constSettings* ,bool) | 170 | 100 | 185 | 3h 44min | 36min | CheckIO+ArgumentInfo.ArgumentInfo (constToken*,constSettings*,bool) |
setValueType(Token*,constValueType&,bool ,ValueType::Sign,constSettings*) | 146 | 105 | 178 | 3h 36min | 35min | __Globals.setValueType(Token* ,constValueType&,bool,ValueType::Sign ,constSettings*) |
initializeVarList(constFunction& ,std::list<constFunction*>&,constScope* ,std::vector<Usage>&) | 159 | 96 | 175 | 3h 32min | 34min | CheckClass.initializeVarList (constFunction&,std::list<constFunction* >&,constScope*,std::vector<Usage>&) |
processFile(conststd::string& ,conststd::string&,std::istream&) | 187 | 74 | 167 | 3h 22min | 32min | CppCheck.processFile(conststd::string& ,conststd::string&,std::istream&) |
run() | 109 | 104 | 158 | 3h 12min | 30min | TestSimplifyTokens.run() |
setValueTypeInTokenList(Token*,bool ,constSettings*) | 136 | 88 | 156 | 3h 9min | 30min | SymbolDatabase.setValueTypeInTokenList (Token*,bool,constSettings*) |
string_c_str() | 119 | 94 | 153 | 3h 6min | 29min | CheckStl.string_c_str() |
simplifyKnownVariables() | 142 | 81 | 152 | 3h 5min | 29min | Tokenizer.simplifyKnownVariables() |
checkScope(constToken*,conststd::vector <std::string>& ,constCheckBufferOverrun::ArrayInfo&) | 121 | 90 | 150 | 3h 2min | 28min | CheckBufferOverrun.checkScope (constToken*,conststd::vector <std::string>& ,constCheckBufferOverrun::ArrayInfo&) |
valueFlowAfterCondition(TokenList* ,SymbolDatabase*,ErrorLogger* ,constSettings*) | 113 | 90 | 146 | 2h 57min | 27min | __Globals.valueFlowAfterCondition (TokenList*,SymbolDatabase*,ErrorLogger* ,constSettings*) |
simplifyCalculations(Token*) | 120 | 84 | 144 | 2h 55min | 27min | TemplateSimplifier.simplifyCalculations (Token*) |
eraseDeadCode(Token*,constToken*) | 144 | 67 | 139 | 2h 49min | 26min | Tokenizer.eraseDeadCode(Token* ,constToken*) |
parseTokens(constTokenizer&,constchar* ,constSettings*,bool) | 123 | 76 | 137 | 2h 47min | 25min | CheckUnusedFunctions.parseTokens (constTokenizer&,constchar* ,constSettings*,bool) |
loadFunction (consttinyxml2::XMLElement*const ,conststd::string&,std::set<std::string >&) | 148 | 63 | 137 | 2h 47min | 25min | Library.loadFunction (consttinyxml2::XMLElement*const ,conststd::string&,std::set<std::string >&) |
run() | 90 | 90 | 135 | 2h 44min | 25min | TestCmdlineParser.run() |
isVariableUsage(constToken*,bool ,CheckUninitVar::Alloc) | 98 | 85 | 134 | 2h 43min | 25min | CheckUninitVar.isVariableUsage (constToken*,bool,CheckUninitVar::Alloc) |
printOut(constchar*) | 153 | 58 | 134 | 2h 43min | 25min | SymbolDatabase.printOut(constchar*) |
simplifyTokenList1(constchar*) | 158 | 51 | 130 | 2h 38min | 24min | Tokenizer.simplifyTokenList1(constchar*) |
checkGlobalAndLocalVariable() | 109 | 74 | 128 | 2h 36min | 23min | CheckBufferOverrun .checkGlobalAndLocalVariable() |
checkIncorrectLogicOperator() | 110 | 73 | 128 | 2h 36min | 23min | CheckCondition .checkIncorrectLogicOperator() |
simplifySizeof() | 129 | 64 | 128 | 2h 36min | 23min | Tokenizer.simplifySizeof() |
execute(constToken*,(anonymousnamespace )::ProgramMemory*const,MathLib::bigint* ,bool*) | 119 | 67 | 126 | 2h 34min | 23min | __Globals.execute(constToken*, (anonymousnamespace )::ProgramMemory*const,MathLib::bigint* ,bool*) |
doAssignment(Variables&,constToken*,bool ,constScope*) | 119 | 66 | 125 | 2h 32min | 23min | __Globals.doAssignment(Variables& ,constToken*,bool,constScope*) |
constructors() | 87 | 81 | 124 | 2h 31min | 23min | CheckClass.constructors() |
run() | 84 | 81 | 123 | 2h 30min | 22min | TestStl.run() |
simplifyTemplateInstantiations (TokenList&,ErrorLogger*,constSettings* ,constToken*,conststd::time_t,std::list <Token*>&,std::set<std::string>&) | 111 | 68 | 123 | 2h 30min | 22min | TemplateSimplifier .simplifyTemplateInstantiations (TokenList&,ErrorLogger*,constSettings* ,constToken*,conststd::time_t,std::list <Token*>&,std::set<std::string>&) |
isSameExpression(bool,bool,constToken* ,constToken*,constLibrary&,bool) | 67 | 87 | 120 | 2h 27min | 22min | __Globals.isSameExpression(bool,bool ,constToken*,constToken*,constLibrary& ,bool) |
isFunction(constToken*,constScope* ,constToken**,constToken**,constToken**) | 81 | 75 | 115 | 2h 21min | 21min | SymbolDatabase.isFunction(constToken* ,constScope*,constToken**,constToken** ,constToken**) |
argsMatch(constScope*,constToken* ,constToken*,conststd::string& ,unsignedint) | 93 | 69 | 115 | 2h 21min | 21min | Function.argsMatch(constScope* ,constToken*,constToken* ,conststd::string&,unsignedint) |
setVarIdPass2() | 104 | 61 | 113 | 2h 18min | 20min | Tokenizer.setVarIdPass2() |
readfile(std::istream&,conststd::string& ,OutputList*) | 114 | 56 | 113 | 2h 18min | 20min | simplecpp.TokenList.readfile (std::istream&,conststd::string& ,OutputList*) |
checkConstFunc(constScope* ,constFunction*,bool&) | 83 | 71 | 112 | 2h 17min | 20min | CheckClass.checkConstFunc(constScope* ,constFunction*,bool&) |
createTokens(std::istream& ,conststd::string&) | 112 | 56 | 112 | 2h 17min | 20min | TokenList.createTokens(std::istream& ,conststd::string&) |
checkSizeofForPointerSize() | 82 | 70 | 111 | 2h 16min | 20min | CheckSizeof.checkSizeofForPointerSize() |
checkPassByReference() | 79 | 70 | 109 | 2h 13min | 19min | CheckOther.checkPassByReference() |
simplifyRedundantParentheses() | 86 | 64 | 107 | 2h 11min | 19min | Tokenizer.simplifyRedundantParentheses() |
addClassFunction(Scope**,constToken** ,constToken*) | 97 | 58 | 106 | 2h 10min | 18min | SymbolDatabase.addClassFunction(Scope** ,constToken**,constToken*) |
call_func(constToken*,std::list <constToken*>,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool& ,unsignedint) | 103 | 55 | 106 | 2h 10min | 18min | CheckMemoryLeakInFunction.call_func (constToken*,std::list<constToken*> ,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool& ,unsignedint) |
createAstAtToken(Token*,bool) | 82 | 61 | 102 | 2h 5min | 18min | __Globals.createAstAtToken(Token*,bool) |
valueFlowReverse(TokenList*,Token* ,constToken*const,ValueFlow::Value ,ValueFlow::Value,ErrorLogger* ,constSettings*) | 88 | 58 | 102 | 2h 5min | 18min | __Globals.valueFlowReverse(TokenList* ,Token*,constToken*const ,ValueFlow::Value,ValueFlow::Value ,ErrorLogger*,constSettings*) |
run() | 68 | 67 | 101 | 2h 4min | 17min | TestSimplifyTemplate.run() |
isDecimalFloat(conststd::string&) | 90 | 56 | 101 | 2h 4min | 17min | MathLib.isDecimalFloat(conststd::string& ) |
checkStructVariable(constVariable*const) | 90 | 56 | 101 | 2h 4min | 17min | CheckMemoryLeakStructMember .checkStructVariable(constVariable*const ) |
run() | 71 | 64 | 99 | 2h 2min | 17min | TestLeakAutoVar.run() |
duplicateTypedef(Token**,constToken* ,constToken*) | 79 | 60 | 99 | 2h 2min | 17min | Tokenizer.duplicateTypedef(Token** ,constToken*,constToken*) |
checkScope_inner(constToken* ,constCheckBufferOverrun::ArrayInfo&) | 83 | 57 | 98 | 2h 0min | 17min | CheckBufferOverrun.checkScope_inner (constToken* ,constCheckBufferOverrun::ArrayInfo&) |
simplifyStructDecl() | 100 | 48 | 98 | 2h 0min | 17min | Tokenizer.simplifyStructDecl() |
useDefaultArgumentValues(conststd::list <Token*>&,std::list<Token*>*) | 91 | 51 | 96 | 1h 58min | 16min | TemplateSimplifier .useDefaultArgumentValues(conststd::list <Token*>&,std::list<Token*>*) |
simplifyConditions() | 101 | 45 | 95 | 1h 57min | 16min | Tokenizer.simplifyConditions() |
testPrintfArgument() | 182 | 1 | 92 | 1h 53min | 15min | TestIO.testPrintfArgument() |
iterators() | 79 | 52 | 91 | 1h 52min | 15min | CheckStl.iterators() |
valueFlowSetConstantValue(constToken* ,constSettings*,bool) | 83 | 49 | 90 | 1h 51min | 15min | __Globals.valueFlowSetConstantValue (constToken*,constSettings*,bool) |
simplifyFunctionParameters() | 94 | 43 | 90 | 1h 51min | 15min | Tokenizer.simplifyFunctionParameters() |
isPointerDeRef(constToken*,bool&) | 56 | 61 | 89 | 1h 50min | 15min | CheckNullPointer.isPointerDeRef (constToken*,bool&) |
simplifyComma() | 66 | 56 | 89 | 1h 50min | 15min | Tokenizer.simplifyComma() |
checkScope(constScope*,conststd::set <std::string>&) | 53 | 62 | 88 | 1h 48min | 14min | CheckUninitVar.checkScope(constScope* ,conststd::set<std::string>&) |
pushback() | 77 | 50 | 88 | 1h 48min | 14min | CheckStl.pushback() |
multiComparePercent(constToken* ,constchar*&,unsignedint) | 93 | 42 | 88 | 1h 48min | 14min | __Globals.multiComparePercent (constToken*,constchar*&,unsignedint) |
simplifyNumericCalculations(Token*) | 55 | 60 | 87 | 1h 47min | 14min | TemplateSimplifier .simplifyNumericCalculations(Token*) |
checkStructVariable() | 76 | 48 | 86 | 1h 46min | 14min | CheckBufferOverrun.checkStructVariable() |
simplifyMathFunctions() | 99 | 37 | 86 | 1h 46min | 14min | Tokenizer.simplifyMathFunctions() |
calc(char,constMathLib::value& ,constMathLib::value&) | 92 | 38 | 84 | 1h 44min | 14min | MathLib+value.calc(char ,constMathLib::value& ,constMathLib::value&) |
parsedecl(constToken*,ValueType*const ,ValueType::Sign,constSettings*) | 79 | 44 | 83 | 1h 43min | 13min | __Globals.parsedecl(constToken* ,ValueType*const,ValueType::Sign ,constSettings*) |
valueFlowBeforeCondition(TokenList* ,SymbolDatabase*,ErrorLogger* ,constSettings*) | 65 | 50 | 82 | 1h 41min | 13min | __Globals.valueFlowBeforeCondition (TokenList*,SymbolDatabase*,ErrorLogger* ,constSettings*) |
checkUnreachableCode() | 65 | 50 | 82 | 1h 41min | 13min | CheckOther.checkUnreachableCode() |
valuetype() | 159 | 1 | 80 | 1h 39min | 13min | TestSymbolDatabase.valuetype() |
run() | 56 | 51 | 79 | 1h 38min | 12min | TestNullPointer.run() |
![]() | Critical Rule Violated: Avoid methods with too many parameters |
• How to Fix Issues: More properties/fields can be added to the declaring type to handle numerous states. An alternative is to provide a class or a structure dedicated to handle arguments passing. The estimated Debt, which means the effort to fix such issue, varies linearly from 1 hour for a method with 7 parameters, up to 6 hours for a methods with 40 or more parameters.
32 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
32 methods | # Parameters | Debt | Annual Interest | Full Name |
---|---|---|---|---|
valueFlowForward(Token*const ,constToken*const,constVariable*const ,constunsignedint,std::list <ValueFlow::Value>,constbool,constbool ,TokenList*const,ErrorLogger*const ,constSettings*const) | 10 | 1h 27min | 12min | __Globals.valueFlowForward(Token*const ,constToken*const,constVariable*const ,constunsignedint,std::list <ValueFlow::Value>,constbool,constbool ,TokenList*const,ErrorLogger*const ,constSettings*const) |
simplifyKnownVariablesSimplify(Token** ,Token*,unsignedint,conststd::string& ,std::string&,unsignedint,bool ,constToken*const,int) | 9 | 1h 18min | 9min | Tokenizer.simplifyKnownVariablesSimplify (Token**,Token*,unsignedint ,conststd::string&,std::string& ,unsignedint,bool,constToken*const,int) |
simplifyKnownVariablesSimplify(Token** ,Token*,unsignedint,conststd::string& ,std::string&,unsignedint,bool ,constToken*const,int) | 9 | 1h 18min | 9min | Tokenizer.simplifyKnownVariablesSimplify (Token**,Token*,unsignedint ,conststd::string&,std::string& ,unsignedint,bool,constToken*const,int) |
simplifyKnownVariablesSimplify(Token** ,Token*,unsignedint,conststd::string& ,std::string&,unsignedint,bool ,constToken*const,int) | 9 | 1h 18min | 9min | Tokenizer.simplifyKnownVariablesSimplify (Token**,Token*,unsignedint ,conststd::string&,std::string& ,unsignedint,bool,constToken*const,int) |
Variable(constToken*,constToken* ,constToken*,std::size_t,AccessControl ,constType*,constScope*,constLibrary*) | 8 | 1h 9min | 5min | Variable.Variable(constToken* ,constToken*,constToken*,std::size_t ,AccessControl,constType*,constScope* ,constLibrary*) |
Variable(constToken*,constToken* ,constToken*,std::size_t,AccessControl ,constType*,constScope*,constLibrary*) | 8 | 1h 9min | 5min | Variable.Variable(constToken* ,constToken*,constToken*,std::size_t ,AccessControl,constType*,constScope* ,constLibrary*) |
stringifyList(bool,bool,bool,bool,bool ,conststd::vector<std::string>* ,constToken*) | 7 | 1h 0min | 2min 0s | Token.stringifyList(bool,bool,bool,bool ,bool,conststd::vector<std::string>* ,constToken*) |
ErrorMessage(conststd::list<FileLocation >&,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) | 7 | 1h 0min | 2min 0s | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<FileLocation>& ,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) |
ErrorMessage(conststd::list<constToken* >&,constTokenList* ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) | 7 | 1h 0min | 2min 0s | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<constToken*>& ,constTokenList*,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) |
simplifyKnownVariablesGetData (unsignedint,Token**,Token** ,std::string&,unsignedint&,bool&,bool) | 7 | 1h 0min | 2min 0s | Tokenizer.simplifyKnownVariablesGetData (unsignedint,Token**,Token** ,std::string&,unsignedint&,bool&,bool) |
valueFlowReverse(TokenList*,Token* ,constToken*const,ValueFlow::Value ,ValueFlow::Value,ErrorLogger* ,constSettings*) | 7 | 1h 0min | 2min 0s | __Globals.valueFlowReverse(TokenList* ,Token*,constToken*const ,ValueFlow::Value,ValueFlow::Value ,ErrorLogger*,constSettings*) |
stringifyList(bool,bool,bool,bool,bool ,conststd::vector<std::string>* ,constToken*) | 7 | 1h 0min | 2min 0s | Token.stringifyList(bool,bool,bool,bool ,bool,conststd::vector<std::string>* ,constToken*) |
ErrorMessage(conststd::list<FileLocation >&,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) | 7 | 1h 0min | 2min 0s | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<FileLocation>& ,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) |
ErrorMessage(conststd::list<constToken* >&,constTokenList* ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) | 7 | 1h 0min | 2min 0s | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<constToken*>& ,constTokenList*,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) |
simplifyKnownVariablesGetData (unsignedint,Token**,Token** ,std::string&,unsignedint&,bool&,bool) | 7 | 1h 0min | 2min 0s | Tokenizer.simplifyKnownVariablesGetData (unsignedint,Token**,Token** ,std::string&,unsignedint&,bool&,bool) |
addVariable(constToken*,constToken* ,constToken*,AccessControl,constType* ,constScope*,constLibrary*) | 7 | 1h 0min | 2min 0s | Scope.addVariable(constToken* ,constToken*,constToken*,AccessControl ,constType*,constScope*,constLibrary*) |
duplInheritedMembersError(constToken* ,constToken*,conststd::string& ,conststd::string&,conststd::string& ,bool,bool) | 7 | 1h 0min | 2min 0s | CheckClass.duplInheritedMembersError (constToken*,constToken* ,conststd::string&,conststd::string& ,conststd::string&,bool,bool) |
call_func(constToken*,std::list <constToken*>,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool& ,unsignedint) | 7 | 1h 0min | 2min 0s | CheckMemoryLeakInFunction.call_func (constToken*,std::list<constToken*> ,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool& ,unsignedint) |
getcode(constToken*,std::list <constToken*>,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool ,unsignedint) | 7 | 1h 0min | 2min 0s | CheckMemoryLeakInFunction.getcode (constToken*,std::list<constToken*> ,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool ,unsignedint) |
expandTemplate(TokenList&,constToken* ,conststd::string&,conststd::vector <constToken*>&,conststd::string& ,conststd::vector<constToken*>& ,std::list<Token*>&) | 7 | 1h 0min | 2min 0s | TemplateSimplifier.expandTemplate (TokenList&,constToken* ,conststd::string&,conststd::vector <constToken*>&,conststd::string& ,conststd::vector<constToken*>& ,std::list<Token*>&) |
simplifyTemplateInstantiations (TokenList&,ErrorLogger*,constSettings* ,constToken*,conststd::time_t,std::list <Token*>&,std::set<std::string>&) | 7 | 1h 0min | 2min 0s | TemplateSimplifier .simplifyTemplateInstantiations (TokenList&,ErrorLogger*,constSettings* ,constToken*,conststd::time_t,std::list <Token*>&,std::set<std::string>&) |
preprocess(simplecpp::TokenList& ,constsimplecpp::TokenList&,std::vector <std::string>&,std::map<std::string ,TokenList*>&,constsimplecpp::DUI& ,OutputList*,std::list<MacroUsage>*) | 7 | 1h 0min | 2min 0s | simplecpp.__Globals.preprocess (simplecpp::TokenList& ,constsimplecpp::TokenList&,std::vector <std::string>&,std::map<std::string ,TokenList*>&,constsimplecpp::DUI& ,OutputList*,std::list<MacroUsage>*) |
ErrorMessage(conststd::list<FileLocation >&,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) | 7 | 1h 0min | 2min 0s | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<FileLocation>& ,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) |
ErrorMessage(conststd::list<constToken* >&,constTokenList* ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) | 7 | 1h 0min | 2min 0s | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<constToken*>& ,constTokenList*,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) |
stringifyList(bool,bool,bool,bool,bool ,conststd::vector<std::string>* ,constToken*) | 7 | 1h 0min | 2min 0s | Token.stringifyList(bool,bool,bool,bool ,bool,conststd::vector<std::string>* ,constToken*) |
simplifyKnownVariablesGetData (unsignedint,Token**,Token** ,std::string&,unsignedint&,bool&,bool) | 7 | 1h 0min | 2min 0s | Tokenizer.simplifyKnownVariablesGetData (unsignedint,Token**,Token** ,std::string&,unsignedint&,bool&,bool) |
duplInheritedMembersError(constToken* ,constToken*,conststd::string& ,conststd::string&,conststd::string& ,bool,bool) | 7 | 1h 0min | 2min 0s | CheckClass.duplInheritedMembersError (constToken*,constToken* ,conststd::string&,conststd::string& ,conststd::string&,bool,bool) |
call_func(constToken*,std::list <constToken*>,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool& ,unsignedint) | 7 | 1h 0min | 2min 0s | CheckMemoryLeakInFunction.call_func (constToken*,std::list<constToken*> ,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool& ,unsignedint) |
getcode(constToken*,std::list <constToken*>,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool ,unsignedint) | 7 | 1h 0min | 2min 0s | CheckMemoryLeakInFunction.getcode (constToken*,std::list<constToken*> ,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool ,unsignedint) |
addVariable(constToken*,constToken* ,constToken*,AccessControl,constType* ,constScope*,constLibrary*) | 7 | 1h 0min | 2min 0s | Scope.addVariable(constToken* ,constToken*,constToken*,AccessControl ,constType*,constScope*,constLibrary*) |
expandTemplate(TokenList&,constToken* ,conststd::string&,conststd::vector <constToken*>&,conststd::string& ,conststd::vector<constToken*>& ,std::list<Token*>&) | 7 | 1h 0min | 2min 0s | TemplateSimplifier.expandTemplate (TokenList&,constToken* ,conststd::string&,conststd::vector <constToken*>&,conststd::string& ,conststd::vector<constToken*>& ,std::list<Token*>&) |
simplifyTemplateInstantiations (TokenList&,ErrorLogger*,constSettings* ,constToken*,conststd::time_t,std::list <Token*>&,std::set<std::string>&) | 7 | 1h 0min | 2min 0s | TemplateSimplifier .simplifyTemplateInstantiations (TokenList&,ErrorLogger*,constSettings* ,constToken*,conststd::time_t,std::list <Token*>&,std::set<std::string>&) |
![]() | Rule Violated: Avoid methods with too many local variables |
• How to Fix Issues: To refactor such method and increase code quality and maintainability, certainly you'll have to split the method into several smaller methods or even create one or several classes to implement the logic. During this process it is important to question the scope of each variable local to the method. This can be an indication if such local variable will become an instance field of the newly created class(es). The estimated Debt, which means the effort to fix such issue, varies linearly from 10 minutes for a method with 15 variables, up to 2 hours for a methods with 80 or more variables.
74 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
74 methods | # Variables | Debt | Annual Interest | Full Name |
---|---|---|---|---|
simplifyTypedef() | 81 | 6h 0min | 2h 0min | Tokenizer.simplifyTypedef() |
load(consttinyxml2::XMLDocument&) | 79 | 5h 55min | 1h 58min | Library.load(consttinyxml2::XMLDocument& ) |
valueFlowForward(Token*const ,constToken*const,constVariable*const ,constunsignedint,std::list <ValueFlow::Value>,constbool,constbool ,TokenList*const,ErrorLogger*const ,constSettings*const) | 66 | 4h 55min | 1h 34min | __Globals.valueFlowForward(Token*const ,constToken*const,constVariable*const ,constunsignedint,std::list <ValueFlow::Value>,constbool,constbool ,TokenList*const,ErrorLogger*const ,constSettings*const) |
simplifyStdType() | 60 | 4h 27min | 1h 23min | TestTokenizer.simplifyStdType() |
createLinks() | 60 | 4h 27min | 1h 23min | TestTokenizer.createLinks() |
preprocess(simplecpp::TokenList& ,constsimplecpp::TokenList&,std::vector <std::string>&,std::map<std::string ,TokenList*>&,constsimplecpp::DUI& ,OutputList*,std::list<MacroUsage>*) | 58 | 4h 18min | 1h 20min | simplecpp.__Globals.preprocess (simplecpp::TokenList& ,constsimplecpp::TokenList&,std::vector <std::string>&,std::map<std::string ,TokenList*>&,constsimplecpp::DUI& ,OutputList*,std::list<MacroUsage>*) |
checkIncorrectLogicOperator() | 55 | 4h 4min | 1h 14min | CheckCondition .checkIncorrectLogicOperator() |
createSymbolDatabaseFindAllScopes() | 46 | 3h 23min | 58min | SymbolDatabase .createSymbolDatabaseFindAllScopes() |
simplifyStructDecl1() | 46 | 3h 23min | 58min | TestSimplifyTokens.simplifyStructDecl1() |
ParseFromArgs(int,constchar*const*) | 43 | 3h 9min | 52min | CmdLineParser.ParseFromArgs(int ,constchar*const*) |
checkFunctionVariableUsage_iterateScopes (constScope*const,Variables&,bool) | 43 | 3h 9min | 52min | CheckUnusedVar .checkFunctionVariableUsage_iterateScope s(constScope*const,Variables&,bool) |
ParseFromArgs(int,constchar*const*) | 43 | 3h 9min | 52min | CmdLineParser.ParseFromArgs(int ,constchar*const*) |
processFile(conststd::string& ,conststd::string&,std::istream&) | 42 | 3h 4min | 51min | CppCheck.processFile(conststd::string& ,conststd::string&,std::istream&) |
checkScopeForVariable(constToken* ,constVariable&,bool*const,bool*const ,CheckUninitVar::Alloc*const ,conststd::string&) | 41 | 3h 0min | 49min | CheckUninitVar.checkScopeForVariable (constToken*,constVariable&,bool*const ,bool*const,CheckUninitVar::Alloc*const ,conststd::string&) |
simplifyKnownVariables() | 40 | 2h 55min | 47min | Tokenizer.simplifyKnownVariables() |
simplifyStructDecl3() | 40 | 2h 55min | 47min | TestSimplifyTokens.simplifyStructDecl3() |
simplifyTypedefFunction1() | 40 | 2h 55min | 47min | TestSimplifyTypedef .simplifyTypedefFunction1() |
checkRedundantAssignment() | 39 | 2h 50min | 45min | CheckOther.checkRedundantAssignment() |
getcode(constToken*,std::list <constToken*>,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool ,unsignedint) | 39 | 2h 50min | 45min | CheckMemoryLeakInFunction.getcode (constToken*,std::list<constToken*> ,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool ,unsignedint) |
simplifyKnownVariables29() | 36 | 2h 36min | 40min | TestTokenizer.simplifyKnownVariables29() |
checkScope(constToken*,conststd::vector <std::string>& ,constCheckBufferOverrun::ArrayInfo&) | 35 | 2h 32min | 38min | CheckBufferOverrun.checkScope (constToken*,conststd::vector <std::string>& ,constCheckBufferOverrun::ArrayInfo&) |
checkScope(constToken*const,VarInfo* ,std::set<unsignedint>) | 34 | 2h 27min | 36min | CheckLeakAutoVar.checkScope (constToken*const,VarInfo*,std::set <unsignedint>) |
simplifyInitVar() | 34 | 2h 27min | 36min | TestTokenizer.simplifyInitVar() |
string_c_str() | 33 | 2h 23min | 34min | CheckStl.string_c_str() |
setTokenValue(Token* ,constValueFlow::Value&,constSettings*) | 32 | 2h 18min | 32min | __Globals.setTokenValue(Token* ,constValueFlow::Value&,constSettings*) |
loadFunction (consttinyxml2::XMLElement*const ,conststd::string&,std::set<std::string >&) | 31 | 2h 13min | 31min | Library.loadFunction (consttinyxml2::XMLElement*const ,conststd::string&,std::set<std::string >&) |
setValueTypeInTokenList(Token*,bool ,constSettings*) | 29 | 2h 4min | 27min | SymbolDatabase.setValueTypeInTokenList (Token*,bool,constSettings*) |
flowControl() | 29 | 2h 4min | 27min | TestSimplifyTokens.flowControl() |
checkGlobalAndLocalVariable() | 28 | 2h 0min | 25min | CheckBufferOverrun .checkGlobalAndLocalVariable() |
checkFileUsage() | 28 | 2h 0min | 25min | CheckIO.checkFileUsage() |
simplifyTemplateInstantiations (TokenList&,ErrorLogger*,constSettings* ,constToken*,conststd::time_t,std::list <Token*>&,std::set<std::string>&) | 27 | 1h 55min | 23min | TemplateSimplifier .simplifyTemplateInstantiations (TokenList&,ErrorLogger*,constSettings* ,constToken*,conststd::time_t,std::list <Token*>&,std::set<std::string>&) |
findFunction(constToken*,bool) | 26 | 1h 50min | 21min | Scope.findFunction(constToken*,bool) |
parseTokens(constTokenizer&,constchar* ,constSettings*,bool) | 26 | 1h 50min | 21min | CheckUnusedFunctions.parseTokens (constTokenizer&,constchar* ,constSettings*,bool) |
setVarIdPass1() | 25 | 1h 46min | 20min | Tokenizer.setVarIdPass1() |
bitfields1() | 25 | 1h 46min | 20min | TestTokenizer.bitfields1() |
check_internal(CppCheck&,int ,constchar*const*) | 24 | 1h 41min | 18min | CppCheckExecutor.check_internal (CppCheck&,int,constchar*const*) |
valueFlowSetConstantValue(constToken* ,constSettings*,bool) | 24 | 1h 41min | 18min | __Globals.valueFlowSetConstantValue (constToken*,constSettings*,bool) |
simplifySizeof() | 24 | 1h 41min | 18min | Tokenizer.simplifySizeof() |
simplifyKnownVariablesSimplify(Token** ,Token*,unsignedint,conststd::string& ,std::string&,unsignedint,bool ,constToken*const,int) | 24 | 1h 41min | 18min | Tokenizer.simplifyKnownVariablesSimplify (Token**,Token*,unsignedint ,conststd::string&,std::string& ,unsignedint,bool,constToken*const,int) |
constructors() | 24 | 1h 41min | 18min | CheckClass.constructors() |
checkFormatString(constToken*const ,constToken*const,constToken*,constbool ,constbool) | 24 | 1h 41min | 18min | CheckIO.checkFormatString (constToken*const,constToken*const ,constToken*,constbool,constbool) |
check_internal(CppCheck&,int ,constchar*const*) | 24 | 1h 41min | 18min | CppCheckExecutor.check_internal (CppCheck&,int,constchar*const*) |
valueFlowAfterCondition(TokenList* ,SymbolDatabase*,ErrorLogger* ,constSettings*) | 23 | 1h 36min | 16min | __Globals.valueFlowAfterCondition (TokenList*,SymbolDatabase*,ErrorLogger* ,constSettings*) |
pushback() | 23 | 1h 36min | 16min | CheckStl.pushback() |
iftruefalse() | 23 | 1h 36min | 16min | TestSimplifyTokens.iftruefalse() |
sizeof9() | 23 | 1h 36min | 16min | TestSimplifyTokens.sizeof9() |
checkScope_inner(constToken* ,constCheckBufferOverrun::ArrayInfo&) | 22 | 1h 32min | 14min | CheckBufferOverrun.checkScope_inner (constToken* ,constCheckBufferOverrun::ArrayInfo&) |
virtualDestructor() | 22 | 1h 32min | 14min | CheckClass.virtualDestructor() |
setValueType(Token*,constValueType&,bool ,ValueType::Sign,constSettings*) | 21 | 1h 27min | 12min | __Globals.setValueType(Token* ,constValueType&,bool,ValueType::Sign ,constSettings*) |
valueFlowAfterMove(TokenList* ,SymbolDatabase*,ErrorLogger* ,constSettings*) | 21 | 1h 27min | 12min | __Globals.valueFlowAfterMove(TokenList* ,SymbolDatabase*,ErrorLogger* ,constSettings*) |
setVarIdPass2() | 21 | 1h 27min | 12min | Tokenizer.setVarIdPass2() |
simplifyMathFunctions() | 21 | 1h 27min | 12min | Tokenizer.simplifyMathFunctions() |
simplifyMathExpressions() | 21 | 1h 27min | 12min | Tokenizer.simplifyMathExpressions() |
checkStructVariable() | 21 | 1h 27min | 12min | CheckBufferOverrun.checkStructVariable() |
simplifycode(Token*) | 21 | 1h 27min | 12min | CheckMemoryLeakInFunction.simplifycode (Token*) |
eraseDeadCode(Token*,constToken*) | 20 | 1h 23min | 11min | Tokenizer.eraseDeadCode(Token* ,constToken*) |
addClassFunction(Scope**,constToken** ,constToken*) | 20 | 1h 23min | 11min | SymbolDatabase.addClassFunction(Scope** ,constToken**,constToken*) |
call_func(constToken*,std::list <constToken*>,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool& ,unsignedint) | 20 | 1h 23min | 11min | CheckMemoryLeakInFunction.call_func (constToken*,std::list<constToken*> ,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool& ,unsignedint) |
mismatchingContainers() | 20 | 1h 23min | 11min | CheckStl.mismatchingContainers() |
useDefaultArgumentValues(conststd::list <Token*>&,std::list<Token*>*) | 20 | 1h 23min | 11min | TemplateSimplifier .useDefaultArgumentValues(conststd::list <Token*>&,std::list<Token*>*) |
getcode(constsimplecpp::TokenList& ,conststd::string&,std::vector <std::string>&,constbool) | 19 | 1h 18min | 9min | Preprocessor.getcode (constsimplecpp::TokenList& ,conststd::string&,std::vector <std::string>&,constbool) |
importVcxproj(conststd::string&,std::map <std::string,std::string> ,conststd::string&) | 18 | 1h 13min | 7min | ImportProject.importVcxproj (conststd::string&,std::map<std::string ,std::string>,conststd::string&) |
checkFunctionParameter(constToken& ,constunsignedint ,constCheckBufferOverrun::ArrayInfo& ,conststd::list<constToken*>&) | 18 | 1h 13min | 7min | CheckBufferOverrun .checkFunctionParameter(constToken& ,constunsignedint ,constCheckBufferOverrun::ArrayInfo& ,conststd::list<constToken*>&) |
analyseWholeProgram(ErrorLogger*const ,conststd::string&) | 18 | 1h 13min | 7min | CheckUnusedFunctions.analyseWholeProgram (ErrorLogger*const,conststd::string&) |
sizeof18() | 18 | 1h 13min | 7min | TestSimplifyTokens.sizeof18() |
checkFuncArgNamesDifferent() | 17 | 1h 9min | 5min | CheckOther.checkFuncArgNamesDifferent() |
variable(constScope*,constToken*) | 17 | 1h 9min | 5min | CheckMemoryLeakInClass.variable (constScope*,constToken*) |
isVariableStlType() | 17 | 1h 9min | 5min | TestSymbolDatabase.isVariableStlType() |
matchNumeric() | 17 | 1h 9min | 5min | TestToken.matchNumeric() |
simplifyNamespaceStd() | 17 | 1h 9min | 5min | TestTokenizer.simplifyNamespaceStd() |
deserialize(conststd::string&) | 16 | 1h 4min | 3min 48s | ErrorLogger+ErrorMessage.deserialize (conststd::string&) |
createTokens(std::istream& ,conststd::string&) | 16 | 1h 4min | 3min 48s | TokenList.createTokens(std::istream& ,conststd::string&) |
simplifyVarDecl(Token*,constToken*const ,constbool) | 16 | 1h 4min | 3min 48s | Tokenizer.simplifyVarDecl(Token* ,constToken*const,constbool) |
createSymbolDatabaseVariableSymbolTable( ) | 16 | 1h 4min | 3min 48s | SymbolDatabase .createSymbolDatabaseVariableSymbolTable () |
![]() | Rule Violated: Avoid methods with too many overloads |
• How to Fix Issues: Typically the too many overloads phenomenon appears when an algorithm takes a various set of in-parameters. Each overload is presented as a facility to provide a various set of in-parameters. In such situation, the C# and VB.NET language feature named Named and Optional arguments should be used. The too many overloads phenomenon can also be a consequence of the usage of the visitor design pattern http://en.wikipedia.org/wiki/Visitor_pattern since a method named Visit() must be provided for each sub type. In such situation there is no need for fix. Sometime too many overloads phenomenon is not the symptom of a problem, for example when a numeric to something conversion method applies to all numeric and nullable numeric types. The estimated Debt, which means the effort to fix such issue, is of 2 minutes per method overload.
116 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 116 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
116 methods | overloads | Debt | Severity | Full Name |
---|---|---|---|---|
ErrorMessage(conststd::list<FileLocation >&,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,bool) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<FileLocation>& ,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,bool) |
ErrorMessage(conststd::list<FileLocation >&,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<FileLocation>& ,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) |
ErrorMessage(conststd::list<constToken* >&,constTokenList* ,Severity::SeverityType ,conststd::string&,conststd::string& ,bool) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<constToken*>& ,constTokenList*,Severity::SeverityType ,conststd::string&,conststd::string& ,bool) |
ErrorMessage(conststd::list<constToken* >&,constTokenList* ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<constToken*>& ,constTokenList*,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) |
ErrorMessage() | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage() |
ErrorMessage (consttinyxml2::XMLElement*const) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (consttinyxml2::XMLElement*const) |
ErrorMessage(ErrorLogger::ErrorMessage&& ) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (ErrorLogger::ErrorMessage&&) |
ErrorMessage (constErrorLogger::ErrorMessage&) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (constErrorLogger::ErrorMessage&) |
ErrorMessage(conststd::list<FileLocation >&,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,bool) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<FileLocation>& ,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,bool) |
ErrorMessage(conststd::list<FileLocation >&,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<FileLocation>& ,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) |
ErrorMessage(conststd::list<constToken* >&,constTokenList* ,Severity::SeverityType ,conststd::string&,conststd::string& ,bool) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<constToken*>& ,constTokenList*,Severity::SeverityType ,conststd::string&,conststd::string& ,bool) |
ErrorMessage(conststd::list<constToken* >&,constTokenList* ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<constToken*>& ,constTokenList*,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) |
ErrorMessage() | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage() |
ErrorMessage (consttinyxml2::XMLElement*const) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (consttinyxml2::XMLElement*const) |
ErrorMessage(ErrorLogger::ErrorMessage&& ) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (ErrorLogger::ErrorMessage&&) |
ErrorMessage (constErrorLogger::ErrorMessage&) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (constErrorLogger::ErrorMessage&) |
ErrorMessage(conststd::list<FileLocation >&,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,bool) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<FileLocation>& ,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,bool) |
ErrorMessage(conststd::list<FileLocation >&,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<FileLocation>& ,conststd::string& ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) |
ErrorMessage(conststd::list<constToken* >&,constTokenList* ,Severity::SeverityType ,conststd::string&,conststd::string& ,bool) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<constToken*>& ,constTokenList*,Severity::SeverityType ,conststd::string&,conststd::string& ,bool) |
ErrorMessage(conststd::list<constToken* >&,constTokenList* ,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (conststd::list<constToken*>& ,constTokenList*,Severity::SeverityType ,conststd::string&,conststd::string& ,constCWE&,bool) |
ErrorMessage() | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage() |
ErrorMessage (consttinyxml2::XMLElement*const) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (consttinyxml2::XMLElement*const) |
ErrorMessage(ErrorLogger::ErrorMessage&& ) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (ErrorLogger::ErrorMessage&&) |
ErrorMessage (constErrorLogger::ErrorMessage&) | 8 methods | 2min 0s | Medium | ErrorLogger+ErrorMessage.ErrorMessage (constErrorLogger::ErrorMessage&) |
SetAttribute(constchar*) | 7 methods | 2min 0s | Medium | tinyxml2.XMLAttribute.SetAttribute (constchar*) |
SetAttribute(int) | 7 methods | 2min 0s | Medium | tinyxml2.XMLAttribute.SetAttribute(int) |
SetAttribute(unsignedint) | 7 methods | 2min 0s | Medium | tinyxml2.XMLAttribute.SetAttribute (unsignedint) |
SetAttribute(int64_t) | 7 methods | 2min 0s | Medium | tinyxml2.XMLAttribute.SetAttribute (int64_t) |
SetAttribute(bool) | 7 methods | 2min 0s | Medium | tinyxml2.XMLAttribute.SetAttribute(bool) |
SetAttribute(double) | 7 methods | 2min 0s | Medium | tinyxml2.XMLAttribute.SetAttribute (double) |
SetAttribute(float) | 7 methods | 2min 0s | Medium | tinyxml2.XMLAttribute.SetAttribute(float ) |
SetAttribute(constchar*,constchar*) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetAttribute (constchar*,constchar*) |
SetAttribute(constchar*,int) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetAttribute (constchar*,int) |
SetAttribute(constchar*,unsignedint) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetAttribute (constchar*,unsignedint) |
SetAttribute(constchar*,int64_t) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetAttribute (constchar*,int64_t) |
SetAttribute(constchar*,bool) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetAttribute (constchar*,bool) |
SetAttribute(constchar*,double) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetAttribute (constchar*,double) |
SetAttribute(constchar*,float) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetAttribute (constchar*,float) |
SetText(constchar*) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetText(constchar*) |
SetText(int) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetText(int) |
SetText(unsignedint) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetText(unsignedint) |
SetText(int64_t) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetText(int64_t) |
SetText(bool) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetText(bool) |
SetText(double) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetText(double) |
SetText(float) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetText(float) |
PushText(constchar*,bool) | 7 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushText(constchar* ,bool) |
PushText(int) | 7 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushText(int) |
PushText(unsignedint) | 7 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushText(unsignedint ) |
PushText(int64_t) | 7 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushText(int64_t) |
PushText(bool) | 7 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushText(bool) |
PushText(float) | 7 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushText(float) |
PushText(double) | 7 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushText(double) |
SetAttribute(constchar*) | 7 methods | 2min 0s | Medium | tinyxml2.XMLAttribute.SetAttribute (constchar*) |
SetAttribute(int) | 7 methods | 2min 0s | Medium | tinyxml2.XMLAttribute.SetAttribute(int) |
SetAttribute(unsignedint) | 7 methods | 2min 0s | Medium | tinyxml2.XMLAttribute.SetAttribute (unsignedint) |
SetAttribute(int64_t) | 7 methods | 2min 0s | Medium | tinyxml2.XMLAttribute.SetAttribute (int64_t) |
SetAttribute(bool) | 7 methods | 2min 0s | Medium | tinyxml2.XMLAttribute.SetAttribute(bool) |
SetAttribute(double) | 7 methods | 2min 0s | Medium | tinyxml2.XMLAttribute.SetAttribute (double) |
SetAttribute(float) | 7 methods | 2min 0s | Medium | tinyxml2.XMLAttribute.SetAttribute(float ) |
SetAttribute(constchar*,constchar*) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetAttribute (constchar*,constchar*) |
SetAttribute(constchar*,int) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetAttribute (constchar*,int) |
SetAttribute(constchar*,unsignedint) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetAttribute (constchar*,unsignedint) |
SetAttribute(constchar*,int64_t) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetAttribute (constchar*,int64_t) |
SetAttribute(constchar*,bool) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetAttribute (constchar*,bool) |
SetAttribute(constchar*,double) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetAttribute (constchar*,double) |
SetAttribute(constchar*,float) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetAttribute (constchar*,float) |
SetText(constchar*) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetText(constchar*) |
SetText(int) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetText(int) |
SetText(unsignedint) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetText(unsignedint) |
SetText(int64_t) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetText(int64_t) |
SetText(bool) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetText(bool) |
SetText(double) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetText(double) |
SetText(float) | 7 methods | 2min 0s | Medium | tinyxml2.XMLElement.SetText(float) |
PushText(constchar*,bool) | 7 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushText(constchar* ,bool) |
PushText(int) | 7 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushText(int) |
PushText(unsignedint) | 7 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushText(unsignedint ) |
PushText(int64_t) | 7 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushText(int64_t) |
PushText(bool) | 7 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushText(bool) |
PushText(float) | 7 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushText(float) |
PushText(double) | 7 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushText(double) |
ToStr(int,char*,int) | 6 methods | 2min 0s | Medium | tinyxml2.XMLUtil.ToStr(int,char*,int) |
ToStr(unsignedint,char*,int) | 6 methods | 2min 0s | Medium | tinyxml2.XMLUtil.ToStr(unsignedint,char* ,int) |
ToStr(bool,char*,int) | 6 methods | 2min 0s | Medium | tinyxml2.XMLUtil.ToStr(bool,char*,int) |
ToStr(float,char*,int) | 6 methods | 2min 0s | Medium | tinyxml2.XMLUtil.ToStr(float,char*,int) |
ToStr(double,char*,int) | 6 methods | 2min 0s | Medium | tinyxml2.XMLUtil.ToStr(double,char*,int) |
ToStr(int64_t,char*,int) | 6 methods | 2min 0s | Medium | tinyxml2.XMLUtil.ToStr(int64_t,char*,int ) |
QueryAttribute(constchar*,int*) | 6 methods | 2min 0s | Medium | tinyxml2.XMLElement.QueryAttribute (constchar*,int*) |
QueryAttribute(constchar*,unsignedint*) | 6 methods | 2min 0s | Medium | tinyxml2.XMLElement.QueryAttribute (constchar*,unsignedint*) |
QueryAttribute(constchar*,int64_t*) | 6 methods | 2min 0s | Medium | tinyxml2.XMLElement.QueryAttribute (constchar*,int64_t*) |
QueryAttribute(constchar*,bool*) | 6 methods | 2min 0s | Medium | tinyxml2.XMLElement.QueryAttribute (constchar*,bool*) |
QueryAttribute(constchar*,double*) | 6 methods | 2min 0s | Medium | tinyxml2.XMLElement.QueryAttribute (constchar*,double*) |
QueryAttribute(constchar*,float*) | 6 methods | 2min 0s | Medium | tinyxml2.XMLElement.QueryAttribute (constchar*,float*) |
PushAttribute(constchar*,constchar*) | 6 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushAttribute (constchar*,constchar*) |
PushAttribute(constchar*,int) | 6 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushAttribute (constchar*,int) |
PushAttribute(constchar*,unsignedint) | 6 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushAttribute (constchar*,unsignedint) |
PushAttribute(constchar*,int64_t) | 6 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushAttribute (constchar*,int64_t) |
PushAttribute(constchar*,bool) | 6 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushAttribute (constchar*,bool) |
PushAttribute(constchar*,double) | 6 methods | 2min 0s | Medium | tinyxml2.XMLPrinter.PushAttribute (constchar*,double) |
ToStr(int,char*,int) | 6 methods | 2min 0s | Medium | tinyxml2.XMLUtil.ToStr(int,char*,int) |
ToStr(unsignedint,char*,int) | 6 methods | 2min 0s | Medium | tinyxml2.XMLUtil.ToStr(unsignedint,char* ,int) |
![]() | Rule Violated: Avoid methods potentially poorly commented |
• How to Fix Issues: Typically add more comment. But code commenting is subject to controversy. While poorly written and designed code would needs a lot of comment to be understood, clean code doesn't need that much comment, especially if variables and methods are properly named and convey enough information. Unit-Test code can also play the role of code commenting. However, even when writing clean and well-tested code, one will have to write hacks at a point, usually to circumvent some API limitations or bugs. A hack is a non-trivial piece of code, that doesn't make sense at first glance, and that took time and web research to be found. In such situation comments must absolutely be used to express the intention, the need for the hacks and the source where the solution has been found. The estimated Debt, which means the effort to comment such method, varies linearly from 2 minutes for 10 lines of code not commented, up to 20 minutes for 200 or more, lines of code not commented.
479 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 479 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
479 methods | Percentage Comment | # lines of code (LOC) | # lines of comment | nbLinesOfCodeNotCommented | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|
checkFormatString(constToken*const ,constToken*const,constToken*,constbool ,constbool) | 4.14 | 672 | 29 | 643 | 20min | 13min | CheckIO.checkFormatString (constToken*const,constToken*const ,constToken*,constbool,constbool) |
simplifyTypedef() | 13.66 | 695 | 110 | 585 | 20min | 6min | Tokenizer.simplifyTypedef() |
testScanfArgument() | 1.57 | 440 | 7 | 433 | 20min | 14min | TestIO.testScanfArgument() |
createSymbolDatabaseFindAllScopes() | 17.92 | 458 | 100 | 358 | 20min | 3min 27s | SymbolDatabase .createSymbolDatabaseFindAllScopes() |
getcode(constToken*,std::list <constToken*>,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool ,unsignedint) | 14.37 | 417 | 70 | 347 | 20min | 5min | CheckMemoryLeakInFunction.getcode (constToken*,std::list<constToken*> ,constunsignedint ,CheckMemoryLeak::AllocType& ,CheckMemoryLeak::AllocType&,bool ,unsignedint) |
load(consttinyxml2::XMLDocument&) | 1.25 | 316 | 4 | 312 | 20min | 15min | Library.load(consttinyxml2::XMLDocument& ) |
ParseFromArgs(int,constchar*const*) | 16.89 | 379 | 77 | 302 | 20min | 4min 10s | CmdLineParser.ParseFromArgs(int ,constchar*const*) |
ParseFromArgs(int,constchar*const*) | 16.89 | 379 | 77 | 302 | 20min | 4min 10s | CmdLineParser.ParseFromArgs(int ,constchar*const*) |
valueFlowForward(Token*const ,constToken*const,constVariable*const ,constunsignedint,std::list <ValueFlow::Value>,constbool,constbool ,TokenList*const,ErrorLogger*const ,constSettings*const) | 9.26 | 333 | 34 | 299 | 20min | 9min | __Globals.valueFlowForward(Token*const ,constToken*const,constVariable*const ,constunsignedint,std::list <ValueFlow::Value>,constbool,constbool ,TokenList*const,ErrorLogger*const ,constSettings*const) |
setTokenValue(Token* ,constValueFlow::Value&,constSettings*) | 4.79 | 278 | 14 | 264 | 20min | 12min | __Globals.setTokenValue(Token* ,constValueFlow::Value&,constSettings*) |
preprocess(simplecpp::TokenList& ,constsimplecpp::TokenList&,std::vector <std::string>&,std::map<std::string ,TokenList*>&,constsimplecpp::DUI& ,OutputList*,std::list<MacroUsage>*) | 6.83 | 273 | 20 | 253 | 20min | 11min | simplecpp.__Globals.preprocess (simplecpp::TokenList& ,constsimplecpp::TokenList&,std::vector <std::string>&,std::map<std::string ,TokenList*>&,constsimplecpp::DUI& ,OutputList*,std::list<MacroUsage>*) |
checkFunctionVariableUsage_iterateScopes (constScope*const,Variables&,bool) | 15.62 | 308 | 57 | 251 | 20min | 5min | CheckUnusedVar .checkFunctionVariableUsage_iterateScope s(constScope*const,Variables&,bool) |
simplifyKnownVariablesSimplify(Token** ,Token*,unsignedint,conststd::string& ,std::string&,unsignedint,bool ,constToken*const,int) | 17.93 | 238 | 52 | 186 | 18min | 3min 26s | Tokenizer.simplifyKnownVariablesSimplify (Token**,Token*,unsignedint ,conststd::string&,std::string& ,unsignedint,bool,constToken*const,int) |
checkScopeForVariable(constToken* ,constVariable&,bool*const,bool*const ,CheckUninitVar::Alloc*const ,conststd::string&) | 18.21 | 229 | 51 | 178 | 17min | 3min 15s | CheckUninitVar.checkScopeForVariable (constToken*,constVariable&,bool*const ,bool*const,CheckUninitVar::Alloc*const ,conststd::string&) |
checkFileUsage() | 3.28 | 177 | 6 | 171 | 17min | 13min | CheckIO.checkFileUsage() |
simplifyVarDecl(Token*,constToken*const ,constbool) | 11.27 | 189 | 24 | 165 | 16min | 8min | Tokenizer.simplifyVarDecl(Token* ,constToken*const,constbool) |
checkScope(constToken*const,VarInfo* ,std::set<unsignedint>) | 15.25 | 200 | 36 | 164 | 16min | 5min | CheckLeakAutoVar.checkScope (constToken*const,VarInfo*,std::set <unsignedint>) |
ArgumentInfo(constToken*,constSettings* ,bool) | 5.56 | 170 | 10 | 160 | 16min | 12min | CheckIO+ArgumentInfo.ArgumentInfo (constToken*,constSettings*,bool) |
testPrintfArgument() | 13.33 | 182 | 28 | 154 | 15min | 6min | TestIO.testPrintfArgument() |
printOut(constchar*) | 0.65 | 153 | 1 | 152 | 15min | 15min | SymbolDatabase.printOut(constchar*) |
processFile(conststd::string& ,conststd::string&,std::istream&) | 15.77 | 187 | 35 | 152 | 15min | 4min 57s | CppCheck.processFile(conststd::string& ,conststd::string&,std::istream&) |
checkRedundantAssignment() | 11.34 | 172 | 22 | 150 | 15min | 8min | CheckOther.checkRedundantAssignment() |
loadFunction (consttinyxml2::XMLElement*const ,conststd::string&,std::set<std::string >&) | 3.27 | 148 | 5 | 143 | 14min | 13min | Library.loadFunction (consttinyxml2::XMLElement*const ,conststd::string&,std::set<std::string >&) |
setValueType(Token*,constValueType&,bool ,ValueType::Sign,constSettings*) | 3.31 | 146 | 5 | 141 | 14min | 13min | __Globals.setValueType(Token* ,constValueType&,bool,ValueType::Sign ,constSettings*) |
setVarIdPass1() | 13.66 | 158 | 25 | 133 | 13min | 6min | Tokenizer.setVarIdPass1() |
setValueTypeInTokenList(Token*,bool ,constSettings*) | 4.23 | 136 | 6 | 130 | 13min | 13min | SymbolDatabase.setValueTypeInTokenList (Token*,bool,constSettings*) |
valuetype() | 15.43 | 159 | 29 | 130 | 13min | 5min | TestSymbolDatabase.valuetype() |
createLinks() | 15.38 | 154 | 28 | 126 | 12min | 5min | TestTokenizer.createLinks() |
findFunction(constToken*,bool) | 16.2 | 150 | 29 | 121 | 12min | 4min 39s | Scope.findFunction(constToken*,bool) |
platform (cppcheck::Platform::PlatformType) | 3.12 | 124 | 4 | 120 | 12min | 13min | cppcheck.Platform.platform (cppcheck::Platform::PlatformType) |
uninitvar1() | 13.58 | 140 | 22 | 118 | 11min | 6min | TestUninitVar.uninitvar1() |
execute(constToken*,(anonymousnamespace )::ProgramMemory*const,MathLib::bigint* ,bool*) | 2.46 | 119 | 3 | 116 | 11min | 14min | __Globals.execute(constToken*, (anonymousnamespace )::ProgramMemory*const,MathLib::bigint* ,bool*) |
simplifyKnownVariables() | 15.48 | 142 | 26 | 116 | 11min | 5min | Tokenizer.simplifyKnownVariables() |
eraseDeadCode(Token*,constToken*) | 17.24 | 144 | 30 | 114 | 11min | 3min 55s | Tokenizer.eraseDeadCode(Token* ,constToken*) |
simplifySizeof() | 11.03 | 129 | 16 | 113 | 11min | 8min | Tokenizer.simplifySizeof() |
run() | 17.37 | 138 | 29 | 109 | 10min | 3min 50s | TestPreprocessor.run() |
string_c_str() | 9.16 | 119 | 12 | 107 | 10min | 9min | CheckStl.string_c_str() |
run() | 15.13 | 129 | 23 | 106 | 10min | 5min | TestOther.run() |
parseTokens(constTokenizer&,constchar* ,constSettings*,bool) | 12.77 | 123 | 18 | 105 | 10min | 7min | CheckUnusedFunctions.parseTokens (constTokenizer&,constchar* ,constSettings*,bool) |
readfile(std::istream&,conststd::string& ,OutputList*) | 8.06 | 114 | 10 | 104 | 10min | 10min | simplecpp.TokenList.readfile (std::istream&,conststd::string& ,OutputList*) |
valueFlowAfterCondition(TokenList* ,SymbolDatabase*,ErrorLogger* ,constSettings*) | 8.87 | 113 | 11 | 102 | 10min | 9min | __Globals.valueFlowAfterCondition (TokenList*,SymbolDatabase*,ErrorLogger* ,constSettings*) |
localvaralias1() | 4.5 | 106 | 5 | 101 | 10min | 12min | TestUnusedVar.localvaralias1() |
simplifyCalculations(Token*) | 14.29 | 120 | 20 | 100 | 10min | 6min | TemplateSimplifier.simplifyCalculations (Token*) |
testgetcode() | 18.75 | 130 | 30 | 100 | 10min | 2min 52s | TestMemleakInFunction.testgetcode() |
simplifyInitVar() | 1.92 | 102 | 2 | 100 | 10min | 14min | TestTokenizer.simplifyInitVar() |
uninitvar2() | 19.88 | 129 | 32 | 97 | 9min | 2min 5s | TestUninitVar.uninitvar2() |
isDecimalFloat() | 1.02 | 97 | 1 | 96 | 9min | 15min | TestMathLib.isDecimalFloat() |
localvar1() | 4.76 | 100 | 5 | 95 | 9min | 12min | TestUnusedVar.localvar1() |
checkGlobalAndLocalVariable() | 12.8 | 109 | 16 | 93 | 9min | 7min | CheckBufferOverrun .checkGlobalAndLocalVariable() |
calc(char,constMathLib::value& ,constMathLib::value&) | 0 | 92 | 0 | 92 | 9min | 16min | MathLib+value.calc(char ,constMathLib::value& ,constMathLib::value&) |
isDecimalFloat(conststd::string&) | 0 | 90 | 0 | 90 | 9min | 16min | MathLib.isDecimalFloat(conststd::string& ) |
setVarIdPass2() | 12.61 | 104 | 15 | 89 | 8min | 7min | Tokenizer.setVarIdPass2() |
simplifyConditions() | 10.62 | 101 | 12 | 89 | 8min | 8min | Tokenizer.simplifyConditions() |
addClassFunction(Scope**,constToken** ,constToken*) | 9.35 | 97 | 10 | 87 | 8min | 9min | SymbolDatabase.addClassFunction(Scope** ,constToken**,constToken*) |
checkIncorrectLogicOperator() | 17.29 | 110 | 23 | 87 | 8min | 3min 53s | CheckCondition .checkIncorrectLogicOperator() |
size1() | 2.22 | 88 | 2 | 86 | 8min | 14min | TestStl.size1() |
valueFlowCalculations() | 13.56 | 102 | 16 | 86 | 8min | 6min | TestValueFlow.valueFlowCalculations() |
simplifyStdType() | 5.26 | 90 | 5 | 85 | 8min | 12min | TestTokenizer.simplifyStdType() |
uninitvar2_structmembers() | 12.73 | 96 | 14 | 82 | 8min | 7min | TestUninitVar.uninitvar2_structmembers() |
valueFlowSetConstantValue(constToken* ,constSettings*,bool) | 3.49 | 83 | 3 | 80 | 8min | 13min | __Globals.valueFlowSetConstantValue (constToken*,constSettings*,bool) |
simplifyStructDecl() | 16.67 | 100 | 20 | 80 | 8min | 4min 20s | Tokenizer.simplifyStructDecl() |
isVariableUsage(constToken*,bool ,CheckUninitVar::Alloc) | 15.52 | 98 | 18 | 80 | 8min | 5min | CheckUninitVar.isVariableUsage (constToken*,bool,CheckUninitVar::Alloc) |
createAstAtToken(Token*,bool) | 3.53 | 82 | 3 | 79 | 7min | 13min | __Globals.createAstAtToken(Token*,bool) |
doublefree1() | 3.53 | 82 | 3 | 79 | 7min | 13min | TestLeakAutoVar.doublefree1() |
parsedecl(constToken*,ValueType*const ,ValueType::Sign,constSettings*) | 1.25 | 79 | 1 | 78 | 7min | 15min | __Globals.parsedecl(constToken* ,ValueType*const,ValueType::Sign ,constSettings*) |
valueFlowReverse(TokenList*,Token* ,constToken*const,ValueFlow::Value ,ValueFlow::Value,ErrorLogger* ,constSettings*) | 10.2 | 88 | 10 | 78 | 7min | 8min | __Globals.valueFlowReverse(TokenList* ,Token*,constToken*const ,ValueFlow::Value,ValueFlow::Value ,ErrorLogger*,constSettings*) |
checkPointerSizeof() | 4.65 | 82 | 4 | 78 | 7min | 12min | TestSizeof.checkPointerSizeof() |
run() | 12.62 | 90 | 13 | 77 | 7min | 7min | TestCmdlineParser.run() |
duplicateExpression1() | 11.11 | 88 | 11 | 77 | 7min | 8min | TestOther.duplicateExpression1() |
multiComparePercent(constToken* ,constchar*&,unsignedint) | 16.96 | 93 | 19 | 74 | 7min | 4min 7s | __Globals.multiComparePercent (constToken*,constchar*&,unsignedint) |
filterException(int,PEXCEPTION_POINTERS) | 3.8 | 76 | 3 | 73 | 7min | 13min | anonymous_namespace{cppcheckexecutor .cpp}.__Globals.filterException(int ,PEXCEPTION_POINTERS) |
simplifyPlatformTypes() | 9.89 | 82 | 9 | 73 | 7min | 9min | Tokenizer.simplifyPlatformTypes() |
checkScope_inner(constToken* ,constCheckBufferOverrun::ArrayInfo&) | 10.75 | 83 | 10 | 73 | 7min | 8min | CheckBufferOverrun.checkScope_inner (constToken* ,constCheckBufferOverrun::ArrayInfo&) |
checkPassByReference() | 7.06 | 79 | 6 | 73 | 7min | 11min | CheckOther.checkPassByReference() |
filterException(int,PEXCEPTION_POINTERS) | 3.8 | 76 | 3 | 73 | 7min | 13min | anonymous_namespace{cppcheckexecutor .cpp}.__Globals.filterException(int ,PEXCEPTION_POINTERS) |
normalizeCharacterLiteral (conststd::string&) | 10 | 81 | 9 | 72 | 7min | 9min | MathLib.normalizeCharacterLiteral (conststd::string&) |
isint() | 7.14 | 78 | 6 | 72 | 7min | 11min | TestMathLib.isint() |
expand(simplecpp::TokenList*const ,constsimplecpp::Location& ,constsimplecpp::Token*const ,conststd::map<TokenString,Macro>& ,std::set<TokenString>) | 9.2 | 79 | 8 | 71 | 7min | 9min | simplecpp.Macro.expand (simplecpp::TokenList*const ,constsimplecpp::Location& ,constsimplecpp::Token*const ,conststd::map<TokenString,Macro>& ,std::set<TokenString>) |
countSprintfLength() | 0 | 70 | 0 | 70 | 7min | 16min | TestBufferOverrun.countSprintfLength() |
checkConstFunc(constScope* ,constFunction*,bool&) | 14.43 | 83 | 14 | 69 | 6min | 5min | CheckClass.checkConstFunc(constScope* ,constFunction*,bool&) |
run() | 16 | 84 | 16 | 68 | 6min | 4min 48s | TestStl.run() |
simplifycode() | 17.48 | 85 | 18 | 67 | 6min | 3min 46s | TestMemleakInFunction.simplifycode() |
simplifyStructDecl1() | 2.82 | 69 | 2 | 67 | 6min | 14min | TestSimplifyTokens.simplifyStructDecl1() |
constructors() | 19.44 | 87 | 21 | 66 | 6min | 2min 23s | CheckClass.constructors() |
checkSizeofForPointerSize() | 16.33 | 82 | 16 | 66 | 6min | 4min 34s | CheckSizeof.checkSizeofForPointerSize() |
pointerDerefAndCheck() | 16.33 | 82 | 16 | 66 | 6min | 4min 34s | TestNullPointer.pointerDerefAndCheck() |
incorrectLogicOperator2() | 8.86 | 72 | 7 | 65 | 6min | 9min | TestCondition.incorrectLogicOperator2() |
enum4() | 5.48 | 69 | 4 | 65 | 6min | 12min | TestSymbolDatabase.enum4() |
isValidIntegerSuffix (std::string::const_iterator ,std::string::const_iterator) | 6.76 | 69 | 5 | 64 | 6min | 11min | MathLib.isValidIntegerSuffix (std::string::const_iterator ,std::string::const_iterator) |
printValueFlow(bool,std::ostream&) | 0 | 64 | 0 | 64 | 6min | 16min | Token.printValueFlow(bool,std::ostream&) |
countSprintfLength(conststd::string& ,conststd::list<constToken*>&) | 12.79 | 75 | 11 | 64 | 6min | 7min | CheckBufferOverrun.countSprintfLength (conststd::string&,conststd::list <constToken*>&) |
comparisonOfBoolExpressionWithInt1() | 1.52 | 65 | 1 | 64 | 6min | 14min | TestBool .comparisonOfBoolExpressionWithInt1() |
getcode(constsimplecpp::TokenList& ,conststd::string&,std::vector <std::string>&,constbool) | 4.35 | 66 | 3 | 63 | 6min | 12min | Preprocessor.getcode (constsimplecpp::TokenList& ,conststd::string&,std::vector <std::string>&,constbool) |
unreachableCode() | 15.38 | 77 | 14 | 63 | 6min | 5min | TestOther.unreachableCode() |
duplicateTypedef(Token**,constToken* ,constToken*) | 17.71 | 79 | 17 | 62 | 6min | 3min 36s | Tokenizer.duplicateTypedef(Token** ,constToken*,constToken*) |
isFunction(constToken*,constScope* ,constToken**,constToken**,constToken**) | 19 | 81 | 19 | 62 | 6min | 2min 42s | SymbolDatabase.isFunction(constToken* ,constScope*,constToken**,constToken** ,constToken**) |
checkSignOfPointer() | 0 | 62 | 0 | 62 | 6min | 16min | TestOther.checkSignOfPointer() |
isSameExpression(bool,bool,constToken* ,constToken*,constLibrary&,bool) | 8.22 | 67 | 6 | 61 | 6min | 10min | __Globals.isSameExpression(bool,bool ,constToken*,constToken*,constLibrary& ,bool) |
isFloatHex(conststd::string&) | 0 | 60 | 0 | 60 | 6min | 16min | MathLib.isFloatHex(conststd::string&) |
simplifyStructDecl3() | 0 | 60 | 0 | 60 | 6min | 16min | TestSimplifyTokens.simplifyStructDecl3() |
![]() | Rule Violated: Avoid types with poor cohesion |
• How to Fix Issues: To refactor a poorly cohesive type and increase code quality and maintainability, certainly you'll have to split the type into several smaller and more cohesive types that together, implement the same logic. The estimated Debt, which means the effort to fix such issue, varies linearly from 5 minutes for a type with a low poorCohesionScore, up to 4 hours for a type with high poorCohesionScore.
19 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
19 types | Lack of Cohesion Of Methods (LCOM) | # Methods | # Fields | poorCohesionScore | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|
Settings | 0.99 | 14 | 42 | 55.16 | 4h 0min | 1h 20min | Settings |
Settings | 0.99 | 14 | 42 | 55.16 | 4h 0min | 1h 20min | Settings |
Library | 0.99 | 75 | 24 | 51.22 | 4h 0min | 1h 20min | Library |
Library | 0.99 | 75 | 24 | 51.22 | 4h 0min | 1h 20min | Library |
XMLPrinter | 0.99 | 38 | 11 | 50.43 | 4h 0min | 1h 20min | tinyxml2.XMLPrinter |
Scope | 0.99 | 30 | 21 | 42.86 | 3h 22min | 1h 7min | Scope |
XMLDocument | 0.98 | 40 | 14 | 34.21 | 2h 37min | 52min | tinyxml2.XMLDocument |
Platform | 0.98 | 12 | 18 | 31.03 | 2h 20min | 47min | cppcheck.Platform |
Platform | 0.98 | 12 | 18 | 31.03 | 2h 20min | 47min | cppcheck.Platform |
Token | 0.97 | 161 | 18 | 23.76 | 1h 42min | 34min | Token |
Token | 0.97 | 161 | 18 | 23.76 | 1h 42min | 34min | Token |
Function | 0.96 | 62 | 15 | 22.18 | 1h 34min | 31min | Function |
Library | 0.95 | 75 | 24 | 17.72 | 1h 11min | 24min | Library |
Function | 0.95 | 62 | 15 | 16.59 | 1h 5min | 22min | Function |
Settings | 0.92 | 14 | 42 | 10.64 | 34min | 11min | Settings |
Token | 0.91 | 161 | 18 | 10.03 | 31min | 10min | Token |
XMLDocument | 0.88 | 40 | 14 | 7.74 | 19min | 6min | tinyxml2.XMLDocument |
Scope | 0.84 | 30 | 21 | 5.95 | 9min | 3min 38s | Scope |
XMLPrinter | 0.84 | 39 | 11 | 5.89 | 9min | 3min 32s | tinyxml2.XMLPrinter |
Object Oriented Design | 2660 |
|
![]() | Rule Violated: Base class should not use derivatives |
• How to Fix Issues: Understand the need for using derivatives, then imagine a new design, and then refactor. Typically an algorithm in the base class needs to access something from derived classes. You can try to encapsulate this access behind an abstract or a virtual method. If you see in the base class some conditions on typeof(DerivedClass) not only urgent refactoring is needed. Such condition can easily be replaced through an abstract or a virtual method. Sometime you'll see a base class that creates instance of some derived classes. In such situation, certainly using the factory method pattern http://en.wikipedia.org/wiki/Factory_method_pattern or the abstract factory pattern http://en.wikipedia.org/wiki/Abstract_factory_pattern will improve the design. The estimated Debt, which means the effort to fix such issue, is equal to 3 minutes per derived class used by the base class + 3 minutes per member of a derived class used by the base class.
2 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
2 types | derivedClassesUsed | derivedClassesMemberUsed | Debt | Severity | Full Name |
---|---|---|---|---|---|
XMLNode | 6 types | 5 methods | 33min | High | tinyxml2.XMLNode |
XMLNode | 6 types | no member | 18min | High | tinyxml2.XMLNode |
Statistics
Stat | derivedClassesUsed | derivedClassesMemberUsed | Debt | Severity |
---|---|---|---|---|
Sum: | 12 | 5 | 51min | - |
Average: | 6 | 2.5 | 25min | - |
Minimum: | 6 | 0 | 18min | - |
Maximum: | 6 | 5 | 33min | - |
Standard deviation: | 0 | 2.5 | 7min | - |
Variance: | 0 | 6.25 | 7d 0h | - |
![]() | Rule Violated: Don't assign static fields from instance methods |
• How to Fix Issues: If the static field is just assigned once in the program lifetime, make sure to declare it as readonly and assign it inline, or from the static constructor. In Object-Oriented-Programming the natural artifact to hold states that can be modified is instance fields. Hence to fix violations of this rule, make sure to hold assignable states through instance fields, not through static fields.
13 fields matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
13 fields | assignedBy | Debt | Severity | Full Name |
---|---|---|---|---|
exename | 1 method | 5min | Medium | __Globals.exename |
missingIncludeFlag | 1 method | 5min | Medium | Preprocessor.missingIncludeFlag |
missingSystemIncludeFlag | 1 method | 5min | Medium | Preprocessor.missingSystemIncludeFlag |
BITAND | 1 method | 5min | Medium | __Globals.BITAND |
BITOR | 1 method | 5min | Medium | __Globals.BITOR |
XOR | 1 method | 5min | Medium | __Globals.XOR |
LF | 1 method | 5min | Medium | __Globals.LF |
macroChar | 2 methods | 5min | Medium | Preprocessor.macroChar |
missingIncludeFlag | 1 method | 5min | Medium | Preprocessor.missingIncludeFlag |
missingSystemIncludeFlag | 1 method | 5min | Medium | Preprocessor.missingSystemIncludeFlag |
macroChar | 1 method | 5min | Medium | Preprocessor.macroChar |
missingIncludeFlag | 2 methods | 5min | Medium | Preprocessor.missingIncludeFlag |
missingSystemIncludeFlag | 1 method | 5min | Medium | Preprocessor.missingSystemIncludeFlag |
Statistics
Stat | assignedBy | Debt | Severity |
---|---|---|---|
Sum: | 15 | 1h 5min | - |
Average: | 1.15 | 5min | - |
Minimum: | 1 | 5min | - |
Maximum: | 2 | 5min | - |
Standard deviation: | 0.36 | 0min 0s | - |
Variance: | 0.13 | 0min 0s | - |
![]() | Rule Violated: Avoid Abstract Classes with too many methods |
• How to Fix Issues: Typically to fix such issue, the interface must be refactored in a grape of smaller single-responsibility interfaces. A classic example is a ISession large interface, responsible for holding states, run commands and offer various accesses and facilities. The classic problem for a large public interface is that it has many clients that consume it. As a consequence splitting it in smaller interfaces has an important impact and it is not always feasible. The estimated Debt, which means the effort to fix such issue, varies linearly from 20 minutes for an interface with 10 methods, up to 7 hours for an interface with 100 or more methods. The Debt is divided by two if the interface is not publicly visible, because in such situation only the current project is impacted by the refactoring.
6 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
6 types | Methods | Debt | Annual Interest | Full Name |
---|---|---|---|---|
XMLNode | 54 methods | 3h 35min | 59min | tinyxml2.XMLNode |
XMLNode | 54 methods | 3h 35min | 59min | tinyxml2.XMLNode |
TestFixture | 22 methods | 1h 13min | 17min | TestFixture |
Check | 16 methods | 46min | 9min | Check |
Check | 16 methods | 46min | 9min | Check |
Check | 16 methods | 46min | 9min | Check |
Statistics
Stat | Methods | Debt | Annual Interest |
---|---|---|---|
Sum: | 178 | 1d 2h | 2h 46min |
Average: | 29.67 | 1h 47min | 27min |
Minimum: | 16 | 46min | 9min |
Maximum: | 54 | 3h 35min | 59min |
Standard deviation: | 17.34 | 1h 17min | 22min |
Variance: | 300.56 | 742d | 64d |
![]() | Rule Violated: Nested types should not be visible |
• How to Fix Issues: If you do not intend the nested type to be externally visible, change the type's accessibility. Otherwise, remove the nested type from its parent and make it non-nested. If the purpose of the nesting is to group some nested types, use a namespace to create the hierarchy instead. The estimated Debt, which means the effort to fix such issue, is 2 minutes per nested type plus 4 minutes per outter type using such nesting type.
146 types matched
- The following list of types is truncated and contains only the first 100 types of the 146 types matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
146 types | Visibility | typesUser | Debt | Severity | Full Name |
---|---|---|---|---|---|
MathLib+value | Public | no type | 2min 0s | Medium | MathLib+value |
Settings+Language | Public | no type | 2min 0s | Medium | Settings+Language |
Settings+Rule | Public | no type | 2min 0s | Medium | Settings+Rule |
Token+Type | Public | no type | 2min 0s | Medium | Token+Type |
Suppressions+SuppressionEntry | Public | no type | 2min 0s | Medium | Suppressions+SuppressionEntry |
InternalError+Type | Public | no type | 2min 0s | Medium | InternalError+Type |
Severity+SeverityType | Public | no type | 2min 0s | Medium | Severity+SeverityType |
ErrorLogger+ErrorMessage | Public | no type | 2min 0s | Medium | ErrorLogger+ErrorMessage |
ErrorLogger+ErrorMessage+FileLocation | Public | no type | 2min 0s | Medium | ErrorLogger+ErrorMessage+FileLocation |
ImportProject+FileSettings | Public | no type | 2min 0s | Medium | ImportProject+FileSettings |
Library+ErrorCode | Public | no type | 2min 0s | Medium | Library+ErrorCode |
Library+Error | Public | no type | 2min 0s | Medium | Library+Error |
Library+AllocFunc | Public | no type | 2min 0s | Medium | Library+AllocFunc |
Library+WarnInfo | Public | no type | 2min 0s | Medium | Library+WarnInfo |
Library+Container | Public | no type | 2min 0s | Medium | Library+Container |
Library+Container+Action | Public | no type | 2min 0s | Medium | Library+Container+Action |
Library+Container+Yield | Public | no type | 2min 0s | Medium | Library+Container+Yield |
Library+Container+Function | Public | no type | 2min 0s | Medium | Library+Container+Function |
Library+ArgumentChecks | Public | no type | 2min 0s | Medium | Library+ArgumentChecks |
Library+ArgumentChecks+IteratorInfo | Public | no type | 2min 0s | Medium | Library+ArgumentChecks+IteratorInfo |
Library+ArgumentChecks+MinSize | Public | no type | 2min 0s | Medium | Library+ArgumentChecks+MinSize |
Library+ArgumentChecks+MinSize+Type | Public | no type | 2min 0s | Medium | Library+ArgumentChecks+MinSize+Type |
Library+Function | Public | no type | 2min 0s | Medium | Library+Function |
Library+PodType | Public | no type | 2min 0s | Medium | Library+PodType |
Library+PlatformType | Public | no type | 2min 0s | Medium | Library+PlatformType |
Library+Platform | Public | no type | 2min 0s | Medium | Library+Platform |
Check+FileInfo | Public | no type | 2min 0s | Medium | Check+FileInfo |
Preprocessor+HeaderTypes | Public | no type | 2min 0s | Medium | Preprocessor+HeaderTypes |
Value+ValueType | Public | no type | 2min 0s | Medium | ValueFlow.Value+ValueType |
Value+MoveKind | Public | no type | 2min 0s | Medium | ValueFlow.Value+MoveKind |
Value+ValueKind | Public | no type | 2min 0s | Medium | ValueFlow.Value+ValueKind |
Platform+PlatformType | Public | no type | 2min 0s | Medium | cppcheck.Platform+PlatformType |
Output+Type | Public | no type | 2min 0s | Medium | simplecpp.Output+Type |
MathLib+value | Public | no type | 2min 0s | Medium | MathLib+value |
Token+Type | Public | no type | 2min 0s | Medium | Token+Type |
Suppressions+SuppressionEntry | Public | no type | 2min 0s | Medium | Suppressions+SuppressionEntry |
InternalError+Type | Public | no type | 2min 0s | Medium | InternalError+Type |
Severity+SeverityType | Public | no type | 2min 0s | Medium | Severity+SeverityType |
ErrorLogger+ErrorMessage | Public | no type | 2min 0s | Medium | ErrorLogger+ErrorMessage |
ErrorLogger+ErrorMessage+FileLocation | Public | no type | 2min 0s | Medium | ErrorLogger+ErrorMessage+FileLocation |
Library+ErrorCode | Public | no type | 2min 0s | Medium | Library+ErrorCode |
Library+Error | Public | no type | 2min 0s | Medium | Library+Error |
Library+AllocFunc | Public | no type | 2min 0s | Medium | Library+AllocFunc |
Library+WarnInfo | Public | no type | 2min 0s | Medium | Library+WarnInfo |
Library+Container | Public | no type | 2min 0s | Medium | Library+Container |
Library+Container+Action | Public | no type | 2min 0s | Medium | Library+Container+Action |
Library+Container+Yield | Public | no type | 2min 0s | Medium | Library+Container+Yield |
Library+Container+Function | Public | no type | 2min 0s | Medium | Library+Container+Function |
Library+ArgumentChecks | Public | no type | 2min 0s | Medium | Library+ArgumentChecks |
Library+ArgumentChecks+IteratorInfo | Public | no type | 2min 0s | Medium | Library+ArgumentChecks+IteratorInfo |
Library+ArgumentChecks+MinSize | Public | no type | 2min 0s | Medium | Library+ArgumentChecks+MinSize |
Library+ArgumentChecks+MinSize+Type | Public | no type | 2min 0s | Medium | Library+ArgumentChecks+MinSize+Type |
Library+Function | Public | no type | 2min 0s | Medium | Library+Function |
Library+PodType | Public | no type | 2min 0s | Medium | Library+PodType |
Library+PlatformType | Public | no type | 2min 0s | Medium | Library+PlatformType |
Library+Platform | Public | no type | 2min 0s | Medium | Library+Platform |
ImportProject+FileSettings | Public | no type | 2min 0s | Medium | ImportProject+FileSettings |
Settings+Language | Public | no type | 2min 0s | Medium | Settings+Language |
Settings+Rule | Public | no type | 2min 0s | Medium | Settings+Rule |
Check+FileInfo | Public | no type | 2min 0s | Medium | Check+FileInfo |
Type+NeedInitialization | Public | no type | 2min 0s | Medium | Type+NeedInitialization |
Type+BaseInfo | Public | no type | 2min 0s | Medium | Type+BaseInfo |
Type+FriendInfo | Public | no type | 2min 0s | Medium | Type+FriendInfo |
Function+Type | Public | no type | 2min 0s | Medium | Function+Type |
Scope+UsingInfo | Public | no type | 2min 0s | Medium | Scope+UsingInfo |
Scope+ScopeType | Public | no type | 2min 0s | Medium | Scope+ScopeType |
ValueType+Sign | Public | no type | 2min 0s | Medium | ValueType+Sign |
ValueType+Type | Public | no type | 2min 0s | Medium | ValueType+Type |
CheckBufferOverrun+ArrayInfo | Public | no type | 2min 0s | Medium | CheckBufferOverrun+ArrayInfo |
CheckBufferOverrun+MyFileInfo | Public | no type | 2min 0s | Medium | CheckBufferOverrun+MyFileInfo |
CheckBufferOverrun+MyFileInfo+ArrayUsage | Public | no type | 2min 0s | Medium | CheckBufferOverrun+MyFileInfo+ArrayUsage |
Filepointer+Operation | Public | no type | 2min 0s | Medium | Filepointer+Operation |
Filepointer+AppendMode | Public | no type | 2min 0s | Medium | Filepointer+AppendMode |
VarInfo+AllocStatus | Public | no type | 2min 0s | Medium | VarInfo+AllocStatus |
VarInfo+AllocInfo | Public | no type | 2min 0s | Medium | VarInfo+AllocInfo |
CheckMemoryLeak+AllocType | Public | no type | 2min 0s | Medium | CheckMemoryLeak+AllocType |
CheckUninitVar+Alloc | Public | no type | 2min 0s | Medium | CheckUninitVar+Alloc |
CheckUninitVar+MyFileInfo | Public | no type | 2min 0s | Medium | CheckUninitVar+MyFileInfo |
Variables+VariableType | Public | no type | 2min 0s | Medium | Variables+VariableType |
Variables+VariableUsage | Public | no type | 2min 0s | Medium | Variables+VariableUsage |
Variables+ScopeGuard | Public | no type | 2min 0s | Medium | Variables+ScopeGuard |
Preprocessor+HeaderTypes | Public | no type | 2min 0s | Medium | Preprocessor+HeaderTypes |
Output+Type | Public | no type | 2min 0s | Medium | simplecpp.Output+Type |
Macro+Error | Public | no type | 2min 0s | Medium | simplecpp.Macro+Error |
Macro+wrongNumberOfParameters | Public | no type | 2min 0s | Medium | simplecpp.Macro+wrongNumberOfParameters |
Macro+invalidHashHash | Public | no type | 2min 0s | Medium | simplecpp.Macro+invalidHashHash |
StrPair+AnonymousEnum | Public | no type | 2min 0s | Medium | tinyxml2.StrPair+AnonymousEnum |
MemPoolT<ITEM_SIZE>+AnonymousEnum | Public | no type | 2min 0s | Medium | tinyxml2.MemPoolT<ITEM_SIZE >+AnonymousEnum |
XMLElement+AnonymousEnum | Public | no type | 2min 0s | Medium | tinyxml2.XMLElement+AnonymousEnum |
Value+ValueType | Public | no type | 2min 0s | Medium | ValueFlow.Value+ValueType |
Value+MoveKind | Public | no type | 2min 0s | Medium | ValueFlow.Value+MoveKind |
Value+ValueKind | Public | no type | 2min 0s | Medium | ValueFlow.Value+ValueKind |
Platform+PlatformType | Public | no type | 2min 0s | Medium | cppcheck.Platform+PlatformType |
MathLib+value | Public | no type | 2min 0s | Medium | MathLib+value |
Suppressions+SuppressionEntry | Public | no type | 2min 0s | Medium | Suppressions+SuppressionEntry |
InternalError+Type | Public | no type | 2min 0s | Medium | InternalError+Type |
Severity+SeverityType | Public | no type | 2min 0s | Medium | Severity+SeverityType |
ErrorLogger+ErrorMessage | Public | no type | 2min 0s | Medium | ErrorLogger+ErrorMessage |
ErrorLogger+ErrorMessage+FileLocation | Public | no type | 2min 0s | Medium | ErrorLogger+ErrorMessage+FileLocation |
Library+ErrorCode | Public | no type | 2min 0s | Medium | Library+ErrorCode |
Statistics
Stat | Visibility | typesUser | Debt | Severity |
---|---|---|---|---|
Sum: | - | 0 | 4h 52min | - |
Average: | - | 0 | 2min 0s | - |
Minimum: | - | 0 | 2min 0s | - |
Maximum: | - | 0 | 2min 0s | - |
Standard deviation: | - | 0 | 0min 0s | - |
Variance: | - | 0 | 0min 0s | - |
![]() | Rule Violated: Projects with poor cohesion (RelationalCohesion) |
• How to Fix Issues: Matches of this present rule might reveal either assemblies with specific coding constraints (like code generated that have particular structure) either issues in design. In the second case, large refactoring can be planned not to respect this rule in particular, but to increase the overall design and code maintainability. The severity of issues of this rule is Low because the code metric Relational Cohesion is an information about the code structure state but is not actionable, it doesn't tell precisely what to do obtain a better score. Fixing actionable issues of others Architecture and Code Quality default rules will necessarily increase the Relational Cohesion scores.
1 project matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
1 project | ChildTypes | relationalCohesion | Relational cohesion | Debt | Severity | Full Name |
---|---|---|---|---|---|---|
cppcheck | 220 types | 4.75 | 4.81 | 10min | Low | cppcheck |
Statistics
Stat | ChildTypes | relationalCohesion | Relational cohesion | Debt | Severity |
---|---|---|---|---|---|
Sum: | 220 | 4.75 | 4.81 | 10min | - |
Average: | 220 | 4.75 | 4.81 | 10min | - |
Minimum: | 220 | 4.75 | 4.81 | 10min | - |
Maximum: | 220 | 4.75 | 4.81 | 10min | - |
Standard deviation: | 0 | 0 | 0 | 0min 0s | - |
Variance: | 0 | 0 | 0 | 0min 0s | - |
![]() | Rule Violated: Constructors of abstract classes should be declared as protected or private |
// Constructors of an abstract class can only be accessed from this class and derived class.
// Declaring such a constructor with another visibility level is useless and potentially misleading.
warnif count > 0
from t in Application.Types where
t.IsClass &&
t.IsAbstract
let ctors = t.Constructors.Where(c => !c.IsProtected && !c.IsPrivate)
where ctors.Count() > 0
select new { t, ctors }
// Notice that if a constructor of an abstract class is declared as private,
// it can only be accessed from derived classes nested in the abstract class.
12 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
12 types | ctors | Full Name |
---|---|---|
TimerResultsIntf | 2 methods | TimerResultsIntf |
ErrorLogger | 2 methods | ErrorLogger |
Check | 2 methods | Check |
ErrorLogger | 2 methods | ErrorLogger |
TimerResultsIntf | 2 methods | TimerResultsIntf |
Check | 2 methods | Check |
MemPool | 2 methods | tinyxml2.MemPool |
ErrorLogger | 2 methods | ErrorLogger |
TimerResultsIntf | 2 methods | TimerResultsIntf |
Check | 2 methods | Check |
TestFixture | 2 methods | TestFixture |
MemPool | 1 method | tinyxml2.MemPool |
Statistics
Stat | ctors |
---|---|
Sum: | 23 |
Average: | 1.92 |
Minimum: | 1 |
Maximum: | 2 |
Standard deviation: | 0.28 |
Variance: | 0.076 |
CWE Rules | 1910 |
|
![]() | Rule Violated: Declaration of Catch for Generic Exception |
warnif count > 0
from m in Methods where !m.IsEntryPoint
&& m.IsUsing("Keywords.generic_catch") select m
127 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 127 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
127 methods | Full Name |
---|---|
addSuppressionLine(conststd::string&) | Suppressions.addSuppressionLine (conststd::string&) |
DeserializeInvalidInput() | TestErrorLogger.DeserializeInvalidInput( ) |
wrong_syntax1() | TestGarbage.wrong_syntax1() |
wrong_syntax4() | TestGarbage.wrong_syntax4() |
wrong_syntax_if_macro() | TestGarbage.wrong_syntax_if_macro() |
syntax_case_default() | TestGarbage.syntax_case_default() |
garbageCode2() | TestGarbage.garbageCode2() |
garbageCode3() | TestGarbage.garbageCode3() |
garbageCode4() | TestGarbage.garbageCode4() |
garbageCode6() | TestGarbage.garbageCode6() |
garbageCode8() | TestGarbage.garbageCode8() |
garbageCode9() | TestGarbage.garbageCode9() |
garbageCode15() | TestGarbage.garbageCode15() |
garbageCode17() | TestGarbage.garbageCode17() |
garbageCode18() | TestGarbage.garbageCode18() |
garbageCode21() | TestGarbage.garbageCode21() |
garbageCode22() | TestGarbage.garbageCode22() |
garbageCode24() | TestGarbage.garbageCode24() |
garbageCode25() | TestGarbage.garbageCode25() |
garbageCode26() | TestGarbage.garbageCode26() |
garbageCode27() | TestGarbage.garbageCode27() |
garbageCode31() | TestGarbage.garbageCode31() |
garbageCode34() | TestGarbage.garbageCode34() |
garbageCode44() | TestGarbage.garbageCode44() |
garbageCode54() | TestGarbage.garbageCode54() |
garbageCode56() | TestGarbage.garbageCode56() |
garbageCode57() | TestGarbage.garbageCode57() |
garbageCode59() | TestGarbage.garbageCode59() |
garbageCode60() | TestGarbage.garbageCode60() |
garbageCode61() | TestGarbage.garbageCode61() |
garbageCode63() | TestGarbage.garbageCode63() |
garbageCode64() | TestGarbage.garbageCode64() |
garbageCode65() | TestGarbage.garbageCode65() |
garbageCode66() | TestGarbage.garbageCode66() |
garbageCode69() | TestGarbage.garbageCode69() |
garbageCode70() | TestGarbage.garbageCode70() |
garbageCode71() | TestGarbage.garbageCode71() |
garbageCode72() | TestGarbage.garbageCode72() |
garbageCode73() | TestGarbage.garbageCode73() |
garbageCode74() | TestGarbage.garbageCode74() |
garbageCode76() | TestGarbage.garbageCode76() |
garbageCode78() | TestGarbage.garbageCode78() |
garbageCode79() | TestGarbage.garbageCode79() |
garbageCode80() | TestGarbage.garbageCode80() |
garbageCode81() | TestGarbage.garbageCode81() |
garbageCode82() | TestGarbage.garbageCode82() |
garbageCode83() | TestGarbage.garbageCode83() |
garbageCode84() | TestGarbage.garbageCode84() |
garbageCode85() | TestGarbage.garbageCode85() |
garbageCode86() | TestGarbage.garbageCode86() |
garbageCode88() | TestGarbage.garbageCode88() |
garbageCode90() | TestGarbage.garbageCode90() |
garbageCode92() | TestGarbage.garbageCode92() |
garbageCode94() | TestGarbage.garbageCode94() |
garbageCode96() | TestGarbage.garbageCode96() |
garbageCode97() | TestGarbage.garbageCode97() |
garbageCode98() | TestGarbage.garbageCode98() |
garbageCode99() | TestGarbage.garbageCode99() |
garbageCode103() | TestGarbage.garbageCode103() |
garbageCode106() | TestGarbage.garbageCode106() |
garbageCode107() | TestGarbage.garbageCode107() |
garbageCode111() | TestGarbage.garbageCode111() |
garbageCode112() | TestGarbage.garbageCode112() |
garbageCode114() | TestGarbage.garbageCode114() |
garbageCode117() | TestGarbage.garbageCode117() |
garbageCode118() | TestGarbage.garbageCode118() |
garbageCode121() | TestGarbage.garbageCode121() |
garbageCode123() | TestGarbage.garbageCode123() |
garbageCode125() | TestGarbage.garbageCode125() |
garbageCode126() | TestGarbage.garbageCode126() |
garbageCode128() | TestGarbage.garbageCode128() |
garbageCode129() | TestGarbage.garbageCode129() |
garbageCode130() | TestGarbage.garbageCode130() |
garbageCode133() | TestGarbage.garbageCode133() |
garbageCode134() | TestGarbage.garbageCode134() |
garbageCode139() | TestGarbage.garbageCode139() |
garbageCode140() | TestGarbage.garbageCode140() |
garbageCode141() | TestGarbage.garbageCode141() |
garbageCode143() | TestGarbage.garbageCode143() |
garbageCode146() | TestGarbage.garbageCode146() |
garbageCode148() | TestGarbage.garbageCode148() |
garbageCode150() | TestGarbage.garbageCode150() |
garbageCode153() | TestGarbage.garbageCode153() |
garbageCode157() | TestGarbage.garbageCode157() |
garbageCode160() | TestGarbage.garbageCode160() |
garbageSymbolDatabase() | TestGarbage.garbageSymbolDatabase() |
garbageAST() | TestGarbage.garbageAST() |
garbageCode161() | TestGarbage.garbageCode161() |
garbageCode162() | TestGarbage.garbageCode162() |
garbageCode163() | TestGarbage.garbageCode163() |
garbageCode169() | TestGarbage.garbageCode169() |
garbageCode171() | TestGarbage.garbageCode171() |
garbageCode172() | TestGarbage.garbageCode172() |
garbageCode173() | TestGarbage.garbageCode173() |
garbageCode175() | TestGarbage.garbageCode175() |
garbageCode182() | TestGarbage.garbageCode182() |
garbageCode183() | TestGarbage.garbageCode183() |
syntaxErrorFirstToken() | TestGarbage.syntaxErrorFirstToken() |
syntaxErrorLastToken() | TestGarbage.syntaxErrorLastToken() |
calculate() | TestMathLib.calculate() |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
Dead Code | 030 |
|
![]() | Rule Violated: Potentially dead Types |
warnif count > 0
let tt=Types.UsedByAny(Application.Methods).ToHashSet()
// Select types unused
let typesUnused =
from t in JustMyCode.Types where
t.NbTypesUsingMe == 0 && !t.IsGlobal select t
from t in typesUnused where !tt.Contains(t)
select new { t }
20 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
20 types | Full Name |
---|---|
MathLib | MathLib |
Timer | Timer |
Suppressions+FileMatcher | Suppressions+FileMatcher |
Severity | Severity |
DUI | simplecpp.DUI |
CheckUninitVar+MyFileInfo | CheckUninitVar+MyFileInfo |
LongFitsIntoSizeTMinusOne<false> | tinyxml2.LongFitsIntoSizeTMinusOne<false > |
Suppressions+FileMatcher | Suppressions+FileMatcher |
Severity | Severity |
Timer | Timer |
CheckBufferOverrun+MyFileInfo | CheckBufferOverrun+MyFileInfo |
CheckBufferOverrun+MyFileInfo+ArrayUsage | CheckBufferOverrun+MyFileInfo+ArrayUsage |
Scope+UsingInfo | Scope+UsingInfo |
CheckUninitVar+MyFileInfo | CheckUninitVar+MyFileInfo |
CheckUnusedFunctions+FunctionDecl | CheckUnusedFunctions+FunctionDecl |
StrPair+AnonymousEnum | tinyxml2.StrPair+AnonymousEnum |
XMLAttribute+AnonymousEnum | tinyxml2.XMLAttribute+AnonymousEnum |
XMLElement+AnonymousEnum | tinyxml2.XMLElement+AnonymousEnum |
XMLElement+AnonymousEnum | tinyxml2.XMLElement+AnonymousEnum |
XMLPrinter+AnonymousEnum | tinyxml2.XMLPrinter+AnonymousEnum |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule Violated: Potentially dead Methods |
warnif count > 0
// Filter procedure for methods that should'nt be considered as dead
let canMethodBeConsideredAsDeadProc = new Func<IMethod, bool>(
m => !m.IsPublic && // Public methods might be used by client applications of your Projects.
!m.IsEntryPoint && // Main() method is not used by-design.
!m.IsClassConstructor &&
!m.IsVirtual && // Only check for non virtual method that are not seen as used in IL.
!(m.IsConstructor && // Don't take account of protected ctor that might be call by a derived ctors.
m.IsProtected) &&
!m.NameLike (@"^On") && //Exclude Events like MFC ones
!m.IsGeneratedByCompiler
)
// Get methods unused
let methodsUnused =
from m in JustMyCode.Methods where
m.NbMethodsCallingMe == 0 &&
canMethodBeConsideredAsDeadProc(m)
select m
// Dead methods = methods used only by unused methods (recursive)
let deadMethodsMetric = methodsUnused.FillIterative(
methods => // Unique loop, just to let a chance to build the hashset.
from o in new[] { new object() }
// Use a hashet to make Intersect calls much faster!
let hashset = methods.ToHashSet()
from m in codeBase.Application.Methods.UsedByAny(methods).Except(methods)
where canMethodBeConsideredAsDeadProc(m) &&
// Select methods called only by methods already considered as dead
hashset.Intersect(m.MethodsCallingMe).Count() == m.NbMethodsCallingMe
select m)
from m in JustMyCode.Methods.Intersect(deadMethodsMetric.DefinitionDomain)
select new { m, m.MethodsCallingMe, depth = deadMethodsMetric[m] }
3,926 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 3926 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
3 926 methods | MethodsCallingMe | depth | Full Name |
---|---|---|---|
normalizeCharacterLiteral (conststd::string&) | no method | 0 | MathLib.normalizeCharacterLiteral (conststd::string&) |
promote(constMathLib::value&) | no method | 0 | MathLib+value.promote (constMathLib::value&) |
operator=(constTimer&) | no method | 0 | Timer.operator=(constTimer&) |
Token() | no method | 0 | Token.Token() |
Token(constToken&) | no method | 0 | Token.Token(constToken&) |
operator=(constToken&) | no method | 0 | Token.operator=(constToken&) |
next(Token*) | no method | 0 | Token.next(Token*) |
previous(Token*) | no method | 0 | Token.previous(Token*) |
firstWordEquals(constchar*,constchar*) | no method | 0 | Token.firstWordEquals(constchar* ,constchar*) |
chrInFirstWord(constchar*,char) | no method | 0 | Token.chrInFirstWord(constchar*,char) |
update_property_isStandardType() | no method | 0 | Token.update_property_isStandardType() |
match(conststd::string& ,conststd::string&) | no method | 0 | Suppressions+FileMatcher.match (conststd::string&,conststd::string&) |
findAndReplace(std::string& ,conststd::string&,conststd::string&) | no method | 0 | ErrorLogger+ErrorMessage.findAndReplace (std::string&,conststd::string& ,conststd::string&) |
fixInvalidChars(conststd::string&) | no method | 0 | ErrorLogger+ErrorMessage.fixInvalidChars (conststd::string&) |
importCompileCommands(std::istream&) | no method | 0 | ImportProject.importCompileCommands (std::istream&) |
importSln(std::istream& ,conststd::string&) | no method | 0 | ImportProject.importSln(std::istream& ,conststd::string&) |
importVcxproj(conststd::string&,std::map <std::string,std::string> ,conststd::string&) | no method | 0 | ImportProject.importVcxproj (conststd::string&,std::map<std::string ,std::string>,conststd::string&) |
loadFunction (consttinyxml2::XMLElement*const ,conststd::string&,std::set<std::string >&) | no method | 0 | Library.loadFunction (consttinyxml2::XMLElement*const ,conststd::string&,std::set<std::string >&) |
getFunctionName(constToken*,bool*) | no method | 0 | Library.getFunctionName(constToken* ,bool*) |
getFunctionName(constToken*) | no method | 0 | Library.getFunctionName(constToken*) |
TokenList(constTokenList&) | no method | 0 | TokenList.TokenList(constTokenList&) |
operator=(constTokenList&) | no method | 0 | TokenList.operator=(constTokenList&) |
isFunctionHead(constToken* ,conststd::string&,bool) | no method | 0 | Tokenizer.isFunctionHead(constToken* ,conststd::string&,bool) |
simplifyWhile0() | no method | 0 | Tokenizer.simplifyWhile0() |
simplifyErrNoInWhile() | no method | 0 | Tokenizer.simplifyErrNoInWhile() |
simplifyFuncInWhile() | no method | 0 | Tokenizer.simplifyFuncInWhile() |
simplifyStd() | no method | 0 | Tokenizer.simplifyStd() |
simplifyPointerToStandardType() | no method | 0 | Tokenizer.simplifyPointerToStandardType( ) |
simplifyFunctionPointers() | no method | 0 | Tokenizer.simplifyFunctionPointers() |
cppcheckError(constToken*) | no method | 0 | Tokenizer.cppcheckError(constToken*) |
createLinks() | no method | 0 | Tokenizer.createLinks() |
createLinks2() | no method | 0 | Tokenizer.createLinks2() |
unhandled_macro_class_x_y(constToken*) | no method | 0 | Tokenizer.unhandled_macro_class_x_y (constToken*) |
validate() | no method | 0 | Tokenizer.validate() |
findGarbageCode() | no method | 0 | Tokenizer.findGarbageCode() |
isGarbageExpr(constToken*,constToken*) | no method | 0 | Tokenizer.isGarbageExpr(constToken* ,constToken*) |
simplifyDeclspec() | no method | 0 | Tokenizer.simplifyDeclspec() |
simplifyCallingConvention() | no method | 0 | Tokenizer.simplifyCallingConvention() |
simplifyAttribute() | no method | 0 | Tokenizer.simplifyAttribute() |
simplifyKeyword() | no method | 0 | Tokenizer.simplifyKeyword() |
simplifyAsm() | no method | 0 | Tokenizer.simplifyAsm() |
simplifyAsm2() | no method | 0 | Tokenizer.simplifyAsm2() |
simplifyBitfields() | no method | 0 | Tokenizer.simplifyBitfields() |
removeUnnecessaryQualification() | no method | 0 | Tokenizer.removeUnnecessaryQualification () |
simplifyNamespaceStd() | no method | 0 | Tokenizer.simplifyNamespaceStd() |
simplifyMicrosoftMemoryFunctions() | no method | 0 | Tokenizer .simplifyMicrosoftMemoryFunctions() |
simplifyMicrosoftStringFunctions() | no method | 0 | Tokenizer .simplifyMicrosoftStringFunctions() |
simplifyBorland() | no method | 0 | Tokenizer.simplifyBorland() |
simplifyQtSignalsSlots() | no method | 0 | Tokenizer.simplifyQtSignalsSlots() |
simplifyOperatorName() | no method | 0 | Tokenizer.simplifyOperatorName() |
simplifyDeprecated() | no method | 0 | Tokenizer.simplifyDeprecated() |
simplifyStrlen() | no method | 0 | Tokenizer.simplifyStrlen() |
prepareTernaryOpForAST() | no method | 0 | Tokenizer.prepareTernaryOpForAST() |
duplicateDefinition(Token**) | no method | 0 | Tokenizer.duplicateDefinition(Token**) |
reportError(constToken* ,constSeverity::SeverityType ,conststd::string&,conststd::string& ,bool) | no method | 0 | Tokenizer.reportError(constToken* ,constSeverity::SeverityType ,conststd::string&,conststd::string& ,bool) |
reportError(conststd::list<constToken*>& ,Severity::SeverityType ,conststd::string&,conststd::string& ,bool) | no method | 0 | Tokenizer.reportError(conststd::list <constToken*>&,Severity::SeverityType ,conststd::string&,conststd::string& ,bool) |
duplicateTypedef(Token**,constToken* ,constToken*) | no method | 0 | Tokenizer.duplicateTypedef(Token** ,constToken*,constToken*) |
unsupportedTypedef(constToken*) | no method | 0 | Tokenizer.unsupportedTypedef(constToken* ) |
setVarIdClassDeclaration (constToken*const,conststd::map <std::string,unsignedint>& ,constunsignedint,std::map<unsignedint ,std::map<std::string,unsignedint>>&) | no method | 0 | Tokenizer.setVarIdClassDeclaration (constToken*const,conststd::map <std::string,unsignedint>& ,constunsignedint,std::map<unsignedint ,std::map<std::string,unsignedint>>&) |
simplifyReturnStrncat() | no method | 0 | Tokenizer.simplifyReturnStrncat() |
printUnknownTypes() | no method | 0 | Tokenizer.printUnknownTypes() |
Tokenizer(constTokenizer&) | no method | 0 | Tokenizer.Tokenizer(constTokenizer&) |
operator=(constTokenizer&) | no method | 0 | Tokenizer.operator=(constTokenizer&) |
processFunc(Token*,bool) | no method | 0 | Tokenizer.processFunc(Token*,bool) |
setPodTypes() | no method | 0 | Tokenizer.setPodTypes() |
reportError<T,U>(constToken* ,constSeverity::SeverityType,constT ,constU) | no method | 0 | Check.reportError<T,U>(constToken* ,constSeverity::SeverityType,constT ,constU) |
reportError<T,U>(constToken* ,constSeverity::SeverityType,constT ,constU,constCWE&,bool) | no method | 0 | Check.reportError<T,U>(constToken* ,constSeverity::SeverityType,constT ,constU,constCWE&,bool) |
reportError<T,U>(conststd::list <constToken*>&,Severity::SeverityType ,constT,constU) | no method | 0 | Check.reportError<T,U>(conststd::list <constToken*>&,Severity::SeverityType ,constT,constU) |
reportError<T,U>(conststd::list <constToken*>&,Severity::SeverityType ,constT,constU,constCWE&,bool) | no method | 0 | Check.reportError<T,U>(conststd::list <constToken*>&,Severity::SeverityType ,constT,constU,constCWE&,bool) |
operator=(constCheck&) | no method | 0 | Check.operator=(constCheck&) |
Check(constCheck&) | no method | 0 | Check.Check(constCheck&) |
internalError(conststd::string& ,conststd::string&) | no method | 0 | CppCheck.internalError(conststd::string& ,conststd::string&) |
processFile(conststd::string& ,conststd::string&,std::istream&) | no method | 0 | CppCheck.processFile(conststd::string& ,conststd::string&,std::istream&) |
checkRawTokens(constTokenizer&) | no method | 0 | CppCheck.checkRawTokens(constTokenizer&) |
checkNormalTokens(constTokenizer&) | no method | 0 | CppCheck.checkNormalTokens (constTokenizer&) |
checkSimplifiedTokens(constTokenizer&) | no method | 0 | CppCheck.checkSimplifiedTokens (constTokenizer&) |
executeRules(conststd::string& ,constTokenizer&) | no method | 0 | CppCheck.executeRules(conststd::string& ,constTokenizer&) |
reportProgress(conststd::string& ,constchar*,conststd::size_t) | no method | 0 | CppCheck.reportProgress (conststd::string&,constchar* ,conststd::size_t) |
RemoveFilename(conststd::string&) | no method | 0 | PathMatch.RemoveFilename (conststd::string&) |
removeSpaceNearNL(conststd::string&) | no method | 0 | Preprocessor.removeSpaceNearNL (conststd::string&) |
missingInclude(conststd::string& ,unsignedint,conststd::string& ,Preprocessor::HeaderTypes) | no method | 0 | Preprocessor.missingInclude (conststd::string&,unsignedint ,conststd::string& ,Preprocessor::HeaderTypes) |
error(conststd::string&,unsignedint ,conststd::string&) | no method | 0 | Preprocessor.error(conststd::string& ,unsignedint,conststd::string&) |
ThreadExecutor(constThreadExecutor&) | no method | 0 | ThreadExecutor.ThreadExecutor (constThreadExecutor&) |
operator=(constThreadExecutor&) | no method | 0 | ThreadExecutor.operator= (constThreadExecutor&) |
combineOperators() | no method | 0 | simplecpp.TokenList.combineOperators() |
constFoldUnaryNotPosNeg (simplecpp::Token*) | no method | 0 | simplecpp.TokenList .constFoldUnaryNotPosNeg (simplecpp::Token*) |
constFoldMulDivRem(simplecpp::Token*) | no method | 0 | simplecpp.TokenList.constFoldMulDivRem (simplecpp::Token*) |
constFoldAddSub(simplecpp::Token*) | no method | 0 | simplecpp.TokenList.constFoldAddSub (simplecpp::Token*) |
constFoldComparison(simplecpp::Token*) | no method | 0 | simplecpp.TokenList.constFoldComparison (simplecpp::Token*) |
constFoldBitwise(simplecpp::Token*) | no method | 0 | simplecpp.TokenList.constFoldBitwise (simplecpp::Token*) |
constFoldLogicalOp(simplecpp::Token*) | no method | 0 | simplecpp.TokenList.constFoldLogicalOp (simplecpp::Token*) |
constFoldQuestionOp(simplecpp::Token**) | no method | 0 | simplecpp.TokenList.constFoldQuestionOp (simplecpp::Token**) |
readUntil(std::istream& ,constsimplecpp::Location&,constchar ,constchar,OutputList*) | no method | 0 | simplecpp.TokenList.readUntil (std::istream&,constsimplecpp::Location& ,constchar,constchar,OutputList*) |
lastLine(int) | no method | 0 | simplecpp.TokenList.lastLine(int) |
fileIndex(conststd::string&) | no method | 0 | simplecpp.TokenList.fileIndex (conststd::string&) |
Token() | no method | 0 | Token.Token() |
Token(constToken&) | no method | 0 | Token.Token(constToken&) |
operator=(constToken&) | no method | 0 | Token.operator=(constToken&) |
TokenList(constTokenList&) | no method | 0 | TokenList.TokenList(constTokenList&) |
operator=(constTokenList&) | no method | 0 | TokenList.operator=(constTokenList&) |
Statistics
Stat | MethodsCallingMe | depth |
---|---|---|
Sum: | 5 982 | 3 503 |
Average: | 1.52 | 0.89 |
Minimum: | 0 | 0 |
Maximum: | 293 | 3 |
Standard deviation: | 8.61 | 0.41 |
Variance: | 74.13 | 0.17 |
![]() | Rule Violated: Potentially dead Fields |
warnif count > 0
from f in JustMyCode.Fields where
f.NbMethodsUsingMe == 0 &&
!f.IsPublic && // Although not recommended, public fields might be used by client applications of your Projects.
!f.IsEnumValue
// If you don't want to link CppDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
select f
113 fields matched
- The following list of fields is truncated and contains only the first 100 fields of the 113 fields matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
113 fields | Full Name |
---|---|
isUnsigned | MathLib+value.isUnsigned |
_results | TimerResults._results |
_str | Timer._str |
_timerResults | Timer._timerResults |
_start | Timer._start |
_showtimeMode | Timer._showtimeMode |
_stopped | Timer._stopped |
_append | Settings._append |
tokensBack | Token.tokensBack |
_suppressions | Suppressions._suppressions |
_files | Suppressions+FileMatcher._files |
_globs | Suppressions+FileMatcher._globs |
fout | AnalyzerInformation.fout |
analyzerInfoFile | AnalyzerInformation.analyzerInfoFile |
allocid | Library.allocid |
_files | Library._files |
_returnValue | Library._returnValue |
_returnValueType | Library._returnValueType |
_returnValueContainer | Library._returnValueContainer |
_reporterrors | Library._reporterrors |
_processAfterCode | Library._processAfterCode |
_keywords | Library._keywords |
_executableblocks | Library._executableblocks |
_importers | Library._importers |
_errorLogger | Tokenizer._errorLogger |
_configuration | Tokenizer._configuration |
_typeSize | Tokenizer._typeSize |
_errorList | CppCheck._errorList |
_errorLogger | CppCheck._errorLogger |
cfg | CppCheck.cfg |
exitcode | CppCheck.exitcode |
_useGlobalSuppressions | CppCheck._useGlobalSuppressions |
tooManyConfigs | CppCheck.tooManyConfigs |
fileInfo | CppCheck.fileInfo |
analyzerInformation | CppCheck.analyzerInformation |
_excludedPaths | PathMatch._excludedPaths |
_caseSensitive | PathMatch._caseSensitive |
_workingDirectory | PathMatch._workingDirectory |
_settings | Preprocessor._settings |
_errorLogger | Preprocessor._errorLogger |
tokenlists | Preprocessor.tokenlists |
files | simplecpp.TokenList.files |
isUnsigned | MathLib+value.isUnsigned |
_suppressions | Suppressions._suppressions |
_files | Suppressions+FileMatcher._files |
_globs | Suppressions+FileMatcher._globs |
allocid | Library.allocid |
_files | Library._files |
_returnValue | Library._returnValue |
_returnValueType | Library._returnValueType |
_returnValueContainer | Library._returnValueContainer |
_reporterrors | Library._reporterrors |
_processAfterCode | Library._processAfterCode |
_keywords | Library._keywords |
_executableblocks | Library._executableblocks |
_importers | Library._importers |
_results | TimerResults._results |
_str | Timer._str |
_timerResults | Timer._timerResults |
_start | Timer._start |
_showtimeMode | Timer._showtimeMode |
_stopped | Timer._stopped |
_append | Settings._append |
tokensBack | Token.tokensBack |
_errorLogger | Tokenizer._errorLogger |
_configuration | Tokenizer._configuration |
_typeSize | Tokenizer._typeSize |
fout | AnalyzerInformation.fout |
analyzerInfoFile | AnalyzerInformation.analyzerInfoFile |
_errorList | CppCheck._errorList |
_errorLogger | CppCheck._errorLogger |
cfg | CppCheck.cfg |
exitcode | CppCheck.exitcode |
_useGlobalSuppressions | CppCheck._useGlobalSuppressions |
tooManyConfigs | CppCheck.tooManyConfigs |
fileInfo | CppCheck.fileInfo |
analyzerInformation | CppCheck.analyzerInformation |
_excludedPaths | PathMatch._excludedPaths |
_caseSensitive | PathMatch._caseSensitive |
_workingDirectory | PathMatch._workingDirectory |
_settings | Preprocessor._settings |
_errorLogger | Preprocessor._errorLogger |
tokenlists | Preprocessor.tokenlists |
_tokenizer | SymbolDatabase._tokenizer |
_settings | SymbolDatabase._settings |
_errorLogger | SymbolDatabase._errorLogger |
_blankTypes | SymbolDatabase._blankTypes |
_functions | CheckUnusedFunctions._functions |
_functionDecl | CheckUnusedFunctions._functionDecl |
_functionCalls | CheckUnusedFunctions._functionCalls |
isRecordTypeWithoutSideEffectsMap | CheckUnusedVar .isRecordTypeWithoutSideEffectsMap |
isEmptyTypeMap | CheckUnusedVar.isEmptyTypeMap |
files | simplecpp.TokenList.files |
_value | tinyxml2.XMLNode._value |
_memPool | tinyxml2.XMLNode._memPool |
_name | tinyxml2.XMLAttribute._name |
_value | tinyxml2.XMLAttribute._value |
_charBuffer | tinyxml2.XMLDocument._charBuffer |
_parseCurLineNum | tinyxml2.XMLDocument._parseCurLineNum |
_elementPool | tinyxml2.XMLDocument._elementPool |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
Naming Conventions | 350 |
![]() | Rule Violated: Instance fields should be prefixed with a 'm_' |
warnif count > 0 (from f in Fields where
!f.NameLike (@"^m_") &&
!f.IsStatic
// Don't hesitate to customize the regex of NameLike to your preference.
&& !f.IsGlobal && !f.IsEnumValue && !f.IsThirdParty
select new { f }).Take(10)
10 fields matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
10 fields | Full Name |
---|---|
_pathnames | CmdLineParser._pathnames |
_ignoredPaths | CmdLineParser._ignoredPaths |
_settings | CmdLineParser._settings |
_showHelp | CmdLineParser._showHelp |
_showVersion | CmdLineParser._showVersion |
_showErrorMessages | CmdLineParser._showErrorMessages |
_exitAfterPrint | CmdLineParser._exitAfterPrint |
intValue | MathLib+value.intValue |
doubleValue | MathLib+value.doubleValue |
type | MathLib+value.type |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule Violated: Static fields should be prefixed with a 's_' |
warnif count > 0 (from f in Fields where
!f.NameLike (@"^s_") &&
f.IsStatic && !f.IsThirdParty
select new { f }).Take(10)
// Don't hesitate to customize the regex of NameLike to your preference.
10 fields matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
10 fields | Full Name |
---|---|
emptyString | __Globals.emptyString |
exename | __Globals.exename |
_terminated | Settings._terminated |
exceptionOutput | CppCheckExecutor.exceptionOutput |
macroChar | Preprocessor.macroChar |
missingIncludeFlag | Preprocessor.missingIncludeFlag |
missingSystemIncludeFlag | Preprocessor.missingSystemIncludeFlag |
NOT | __Globals.NOT |
NOTEQ | __Globals.NOTEQ |
BITAND | __Globals.BITAND |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule Violated: Exception class name should be suffixed with 'Exception' |
warnif count > 0 (from t in Types where t.IsExceptionClass && !t.NameLike (@"Exception$") && !t.IsThirdParty
select new { t, t.NbLinesOfCode }).Take(10)
6 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
6 types | # lines of code (LOC) | Full Name |
---|---|---|
InternalError | 0 | InternalError |
InternalError | 9 | InternalError |
Macro+Error | 2 | simplecpp.Macro+Error |
Macro+wrongNumberOfParameters | 0 | simplecpp.Macro+wrongNumberOfParameters |
Macro+invalidHashHash | 0 | simplecpp.Macro+invalidHashHash |
InternalError | 0 | InternalError |
Statistics
Stat | # lines of code (LOC) |
---|---|
Sum: | 11 |
Average: | 1.83 |
Minimum: | 0 |
Maximum: | 9 |
Standard deviation: | 3.29 |
Variance: | 10.81 |
![]() | Rule Violated: Types name should begin with an Upper character |
warnif count > 0 (from t in Types where
!t.NameLike (@"^[A-Z]") // The name of a type should begin with an Upper letter.
&& // Except if it is generated by compiler or ...
!t.IsThirdParty && !t.IsGlobal
select new { t, t.NbLinesOfCode }).Take(10)
5 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
5 types | # lines of code (LOC) | Full Name |
---|---|---|
make_container<Cont> | 10 | make_container<Cont> |
make_container<Cont> | 10 | make_container<Cont> |
triplet | 2 | anonymous_namespace{tokenize.cpp} .triplet |
make_container<Cont> | 10 | make_container<Cont> |
options | 8 | options |
Statistics
Stat | # lines of code (LOC) |
---|---|
Sum: | 40 |
Average: | 8 |
Minimum: | 2 |
Maximum: | 10 |
Standard deviation: | 3.1 |
Variance: | 9.6 |
![]() | Rule Violated: Avoid methods with name too long |
warnif count > 0 from m in Application.Methods where
!m.IsGeneratedByCompiler
&& m.SimpleName.Length > 35 && !m.IsThirdParty
select new { m, m.SimpleName }
// The regex matches methods with name longer
// than 35 characters.
// Method Name doesn't contain the type and namespace
// prefix, FullName does.
// The regex computes the method name length from
// the beginning until the first open parenthesis
// or first lower than (for generic methods).
129 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 129 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
129 methods | SimpleName | Full Name |
---|---|---|
concatenateNegativeNumberAndAnyPositive( ) | concatenateNegativeNumberAndAnyPositive | Tokenizer .concatenateNegativeNumberAndAnyPositive () |
findComplicatedSyntaxErrorsInTemplates() | findComplicatedSyntaxErrorsInTemplates | Tokenizer .findComplicatedSyntaxErrorsInTemplates( ) |
checkNullpointerFunctionCallPlausibility (constFunction*,unsignedint) | checkNullpointerFunctionCallPlausibility | __Globals .checkNullpointerFunctionCallPlausibilit y(constFunction*,unsignedint) |
findVariableTypeIncludingUsedNamespaces (constSymbolDatabase*,constScope* ,constToken*) | findVariableTypeIncludingUsedNamespaces | __Globals .findVariableTypeIncludingUsedNamespaces (constSymbolDatabase*,constScope* ,constToken*) |
isOpenParenthesisMemberFunctionCallOfVar Id(constToken*,unsignedint) | isOpenParenthesisMemberFunctionCallOfVarId | __Globals .isOpenParenthesisMemberFunctionCallOfVa rId(constToken*,unsignedint) |
concatenateNegativeNumberAndAnyPositive( ) | concatenateNegativeNumberAndAnyPositive | Tokenizer .concatenateNegativeNumberAndAnyPositive () |
findComplicatedSyntaxErrorsInTemplates() | findComplicatedSyntaxErrorsInTemplates | Tokenizer .findComplicatedSyntaxErrorsInTemplates( ) |
createSymbolDatabaseClassAndStructScopes () | createSymbolDatabaseClassAndStructScopes | SymbolDatabase .createSymbolDatabaseClassAndStructScope s() |
createSymbolDatabaseFunctionReturnTypes( ) | createSymbolDatabaseFunctionReturnTypes | SymbolDatabase .createSymbolDatabaseFunctionReturnTypes () |
createSymbolDatabaseNeedInitialization() | createSymbolDatabaseNeedInitialization | SymbolDatabase .createSymbolDatabaseNeedInitialization( ) |
createSymbolDatabaseVariableSymbolTable( ) | createSymbolDatabaseVariableSymbolTable | SymbolDatabase .createSymbolDatabaseVariableSymbolTable () |
createSymbolDatabaseSetScopePointers() | createSymbolDatabaseSetScopePointers | SymbolDatabase .createSymbolDatabaseSetScopePointers() |
createSymbolDatabaseSetFunctionPointers( ) | createSymbolDatabaseSetFunctionPointers | SymbolDatabase .createSymbolDatabaseSetFunctionPointers () |
createSymbolDatabaseSetVariablePointers( ) | createSymbolDatabaseSetVariablePointers | SymbolDatabase .createSymbolDatabaseSetVariablePointers () |
createSymbolDatabaseUnknownArrayDimensio ns() | createSymbolDatabaseUnknownArrayDimensions | SymbolDatabase .createSymbolDatabaseUnknownArrayDimensi ons() |
errorReturnAddressOfFunctionParameter (constToken*,conststd::string&) | errorReturnAddressOfFunctionParameter | CheckAutoVariables .errorReturnAddressOfFunctionParameter (constToken*,conststd::string&) |
checkComparisonOfBoolExpressionWithInt() | checkComparisonOfBoolExpressionWithInt | CheckBool .checkComparisonOfBoolExpressionWithInt( ) |
comparisonOfTwoFuncsReturningBoolError (constToken*,conststd::string& ,conststd::string&) | comparisonOfTwoFuncsReturningBoolError | CheckBool .comparisonOfTwoFuncsReturningBoolError (constToken*,conststd::string& ,conststd::string&) |
comparisonOfBoolWithInvalidComparator (constToken*,conststd::string&) | comparisonOfBoolWithInvalidComparator | CheckBool .comparisonOfBoolWithInvalidComparator (constToken*,conststd::string&) |
comparisonOfBoolExpressionWithIntError (constToken*,bool) | comparisonOfBoolExpressionWithIntError | CheckBool .comparisonOfBoolExpressionWithIntError (constToken*,bool) |
operatorEqShouldBeLeftUnimplementedError (constToken*) | operatorEqShouldBeLeftUnimplementedError | CheckClass .operatorEqShouldBeLeftUnimplementedErro r(constToken*) |
operatorEqMissingReturnStatementError (constToken*,bool) | operatorEqMissingReturnStatementError | CheckClass .operatorEqMissingReturnStatementError (constToken*,bool) |
getFirstPureVirtualFunctionCallStack (std::map<constFunction*,std::list <constToken*>>&,constToken&,std::list <constToken*>&) | getFirstPureVirtualFunctionCallStack | CheckClass .getFirstPureVirtualFunctionCallStack (std::map<constFunction*,std::list <constToken*>>&,constToken&,std::list <constToken*>&) |
checkComparisonFunctionIsAlwaysTrueOrFal se() | checkComparisonFunctionIsAlwaysTrueOrFalse | CheckOther .checkComparisonFunctionIsAlwaysTrueOrFa lse() |
checkComparisonFunctionIsAlwaysTrueOrFal seError(constToken*,conststd::string& ,conststd::string&,constbool) | checkComparisonFunctionIsAlwaysTrueOrFalseError | CheckOther .checkComparisonFunctionIsAlwaysTrueOrFa lseError(constToken*,conststd::string& ,conststd::string&,constbool) |
redundantBitwiseOperationInSwitchError (constToken*,conststd::string&) | redundantBitwiseOperationInSwitchError | CheckOther .redundantBitwiseOperationInSwitchError (constToken*,conststd::string&) |
isMovedParameterAllowedForInconclusiveFu nction(constToken*) | isMovedParameterAllowedForInconclusiveFunction | CheckOther .isMovedParameterAllowedForInconclusiveF unction(constToken*) |
alwaysTrueStringVariableCompareError (constToken*,conststd::string& ,conststd::string&) | alwaysTrueStringVariableCompareError | CheckString .alwaysTrueStringVariableCompareError (constToken*,conststd::string& ,conststd::string&) |
unhandledExceptionSpecificationError (constToken*const,constToken*const ,conststd::string&) | unhandledExceptionSpecificationError | CheckExceptionSafety .unhandledExceptionSpecificationError (constToken*const,constToken*const ,conststd::string&) |
wrongPrintfScanfPosixParameterPositionEr ror(constToken*,conststd::string& ,unsignedint,unsignedint) | wrongPrintfScanfPosixParameterPositionError | CheckIO .wrongPrintfScanfPosixParameterPositionE rror(constToken*,conststd::string& ,unsignedint,unsignedint) |
checkFunctionVariableUsage_iterateScopes (constScope*const,Variables&,bool) | checkFunctionVariableUsage_iterateScopes | CheckUnusedVar .checkFunctionVariableUsage_iterateScope s(constScope*const,Variables&,bool) |
checkComplicatedSyntaxErrorsInTemplates (constToken*) | checkComplicatedSyntaxErrorsInTemplates | TemplateSimplifier .checkComplicatedSyntaxErrorsInTemplates (constToken*) |
concatenateNegativeNumberAndAnyPositive( ) | concatenateNegativeNumberAndAnyPositive | Tokenizer .concatenateNegativeNumberAndAnyPositive () |
findComplicatedSyntaxErrorsInTemplates() | findComplicatedSyntaxErrorsInTemplates | Tokenizer .findComplicatedSyntaxErrorsInTemplates( ) |
errorReturnAddressOfFunctionParameter (constToken*,conststd::string&) | errorReturnAddressOfFunctionParameter | CheckAutoVariables .errorReturnAddressOfFunctionParameter (constToken*,conststd::string&) |
checkComparisonOfBoolExpressionWithInt() | checkComparisonOfBoolExpressionWithInt | CheckBool .checkComparisonOfBoolExpressionWithInt( ) |
comparisonOfTwoFuncsReturningBoolError (constToken*,conststd::string& ,conststd::string&) | comparisonOfTwoFuncsReturningBoolError | CheckBool .comparisonOfTwoFuncsReturningBoolError (constToken*,conststd::string& ,conststd::string&) |
comparisonOfBoolWithInvalidComparator (constToken*,conststd::string&) | comparisonOfBoolWithInvalidComparator | CheckBool .comparisonOfBoolWithInvalidComparator (constToken*,conststd::string&) |
comparisonOfBoolExpressionWithIntError (constToken*,bool) | comparisonOfBoolExpressionWithIntError | CheckBool .comparisonOfBoolExpressionWithIntError (constToken*,bool) |
array_index_same_struct_and_var_name() | array_index_same_struct_and_var_name | TestBufferOverrun .array_index_same_struct_and_var_name() |
buffer_overrun_function_array_argument() | buffer_overrun_function_array_argument | TestBufferOverrun .buffer_overrun_function_array_argument( ) |
checkComparisonFunctionIsAlwaysTrueOrFal se() | checkComparisonFunctionIsAlwaysTrueOrFalse | CheckOther .checkComparisonFunctionIsAlwaysTrueOrFa lse() |
checkComparisonFunctionIsAlwaysTrueOrFal seError(constToken*,conststd::string& ,conststd::string&,constbool) | checkComparisonFunctionIsAlwaysTrueOrFalseError | CheckOther .checkComparisonFunctionIsAlwaysTrueOrFa lseError(constToken*,conststd::string& ,conststd::string&,constbool) |
redundantBitwiseOperationInSwitchError (constToken*,conststd::string&) | redundantBitwiseOperationInSwitchError | CheckOther .redundantBitwiseOperationInSwitchError (constToken*,conststd::string&) |
isMovedParameterAllowedForInconclusiveFu nction(constToken*) | isMovedParameterAllowedForInconclusiveFunction | CheckOther .isMovedParameterAllowedForInconclusiveF unction(constToken*) |
operatorEqShouldBeLeftUnimplementedError (constToken*) | operatorEqShouldBeLeftUnimplementedError | CheckClass .operatorEqShouldBeLeftUnimplementedErro r(constToken*) |
operatorEqMissingReturnStatementError (constToken*,bool) | operatorEqMissingReturnStatementError | CheckClass .operatorEqMissingReturnStatementError (constToken*,bool) |
getFirstPureVirtualFunctionCallStack (std::map<constFunction*,std::list <constToken*>>&,constToken&,std::list <constToken*>&) | getFirstPureVirtualFunctionCallStack | CheckClass .getFirstPureVirtualFunctionCallStack (std::map<constFunction*,std::list <constToken*>>&,constToken&,std::list <constToken*>&) |
assigningPointerToPointerIsNotAConstOper ation() | assigningPointerToPointerIsNotAConstOperation | TestClass .assigningPointerToPointerIsNotAConstOpe ration() |
assigningArrayElementIsNotAConstOperatio n() | assigningArrayElementIsNotAConstOperation | TestClass .assigningArrayElementIsNotAConstOperati on() |
secondAlwaysTrueFalseWhenFirstTrueError( ) | secondAlwaysTrueFalseWhenFirstTrueError | TestCondition .secondAlwaysTrueFalseWhenFirstTrueError () |
unhandledExceptionSpecificationError (constToken*const,constToken*const ,conststd::string&) | unhandledExceptionSpecificationError | CheckExceptionSafety .unhandledExceptionSpecificationError (constToken*const,constToken*const ,conststd::string&) |
wrongPrintfScanfPosixParameterPositionEr ror(constToken*,conststd::string& ,unsignedint,unsignedint) | wrongPrintfScanfPosixParameterPositionError | CheckIO .wrongPrintfScanfPosixParameterPositionE rror(constToken*,conststd::string& ,unsignedint,unsignedint) |
testPosixPrintfScanfParameterPosition() | testPosixPrintfScanfParameterPosition | TestIO .testPosixPrintfScanfParameterPosition() |
createSymbolDatabaseClassAndStructScopes () | createSymbolDatabaseClassAndStructScopes | SymbolDatabase .createSymbolDatabaseClassAndStructScope s() |
createSymbolDatabaseFunctionReturnTypes( ) | createSymbolDatabaseFunctionReturnTypes | SymbolDatabase .createSymbolDatabaseFunctionReturnTypes () |
createSymbolDatabaseNeedInitialization() | createSymbolDatabaseNeedInitialization | SymbolDatabase .createSymbolDatabaseNeedInitialization( ) |
createSymbolDatabaseVariableSymbolTable( ) | createSymbolDatabaseVariableSymbolTable | SymbolDatabase .createSymbolDatabaseVariableSymbolTable () |
createSymbolDatabaseSetScopePointers() | createSymbolDatabaseSetScopePointers | SymbolDatabase .createSymbolDatabaseSetScopePointers() |
createSymbolDatabaseSetFunctionPointers( ) | createSymbolDatabaseSetFunctionPointers | SymbolDatabase .createSymbolDatabaseSetFunctionPointers () |
createSymbolDatabaseSetVariablePointers( ) | createSymbolDatabaseSetVariablePointers | SymbolDatabase .createSymbolDatabaseSetVariablePointers () |
createSymbolDatabaseUnknownArrayDimensio ns() | createSymbolDatabaseUnknownArrayDimensions | SymbolDatabase .createSymbolDatabaseUnknownArrayDimensi ons() |
prohibitedFunctions_declaredFunction() | prohibitedFunctions_declaredFunction | TestFunctions .prohibitedFunctions_declaredFunction() |
prohibitedFunctions_functionWithBody() | prohibitedFunctions_functionWithBody | TestFunctions .prohibitedFunctions_functionWithBody() |
prohibitedFunctions_namespaceHandling() | prohibitedFunctions_namespaceHandling | TestFunctions .prohibitedFunctions_namespaceHandling() |
testMisusedScopeObjectDoesNotPickFunctio n1() | testMisusedScopeObjectDoesNotPickFunction1 | TestOther .testMisusedScopeObjectDoesNotPickFuncti on1() |
testMisusedScopeObjectDoesNotPickFunctio n2() | testMisusedScopeObjectDoesNotPickFunction2 | TestOther .testMisusedScopeObjectDoesNotPickFuncti on2() |
testMisusedScopeObjectDoesNotPickConstru ctorDeclaration() | testMisusedScopeObjectDoesNotPickConstructorDeclaration | TestOther .testMisusedScopeObjectDoesNotPickConstr uctorDeclaration() |
testMisusedScopeObjectDoesNotPickFunctor () | testMisusedScopeObjectDoesNotPickFunctor | TestOther .testMisusedScopeObjectDoesNotPickFuncto r() |
testMisusedScopeObjectDoesNotPickLocalCl assConstructors() | testMisusedScopeObjectDoesNotPickLocalClassConstructors | TestOther .testMisusedScopeObjectDoesNotPickLocalC lassConstructors() |
testMisusedScopeObjectDoesNotPickUsedObj ect() | testMisusedScopeObjectDoesNotPickUsedObject | TestOther .testMisusedScopeObjectDoesNotPickUsedOb ject() |
testMisusedScopeObjectDoesNotPickPureC() | testMisusedScopeObjectDoesNotPickPureC | TestOther .testMisusedScopeObjectDoesNotPickPureC( ) |
testMisusedScopeObjectDoesNotPickNestedC lass() | testMisusedScopeObjectDoesNotPickNestedClass | TestOther .testMisusedScopeObjectDoesNotPickNested Class() |
checkComparisonFunctionIsAlwaysTrueOrFal se() | checkComparisonFunctionIsAlwaysTrueOrFalse | TestOther .checkComparisonFunctionIsAlwaysTrueOrFa lse() |
testEvaluationOrderSequencePointsFunctio nCall() | testEvaluationOrderSequencePointsFunctionCall | TestOther .testEvaluationOrderSequencePointsFuncti onCall() |
testEvaluationOrderSequencePointsComma() | testEvaluationOrderSequencePointsComma | TestOther .testEvaluationOrderSequencePointsComma( ) |
moveAndFunctionParameterConstReference() | moveAndFunctionParameterConstReference | TestOther .moveAndFunctionParameterConstReference( ) |
inline_suppression_for_missing_include() | inline_suppression_for_missing_include | TestPreprocessor .inline_suppression_for_missing_include( ) |
checkComplicatedSyntaxErrorsInTemplates (constToken*) | checkComplicatedSyntaxErrorsInTemplates | TemplateSimplifier .checkComplicatedSyntaxErrorsInTemplates (constToken*) |
alwaysTrueStringVariableCompareError (constToken*,conststd::string& ,conststd::string&) | alwaysTrueStringVariableCompareError | CheckString .alwaysTrueStringVariableCompareError (constToken*,conststd::string& ,conststd::string&) |
test_isVariableDeclarationCanHandleNull( ) | test_isVariableDeclarationCanHandleNull | TestSymbolDatabase .test_isVariableDeclarationCanHandleNull () |
test_isVariableDeclarationIdentifiesSimp leDeclaration() | test_isVariableDeclarationIdentifiesSimpleDeclaration | TestSymbolDatabase .test_isVariableDeclarationIdentifiesSim pleDeclaration() |
test_isVariableDeclarationIdentifiesInit ialization() | test_isVariableDeclarationIdentifiesInitialization | TestSymbolDatabase .test_isVariableDeclarationIdentifiesIni tialization() |
test_isVariableDeclarationIdentifiesCpp1 1Initialization() | test_isVariableDeclarationIdentifiesCpp11Initialization | TestSymbolDatabase .test_isVariableDeclarationIdentifiesCpp 11Initialization() |
test_isVariableDeclarationIdentifiesScop edDeclaration() | test_isVariableDeclarationIdentifiesScopedDeclaration | TestSymbolDatabase .test_isVariableDeclarationIdentifiesSco pedDeclaration() |
test_isVariableDeclarationIdentifiesStdD eclaration() | test_isVariableDeclarationIdentifiesStdDeclaration | TestSymbolDatabase .test_isVariableDeclarationIdentifiesStd Declaration() |
test_isVariableDeclarationIdentifiesScop edStdDeclaration() | test_isVariableDeclarationIdentifiesScopedStdDeclaration | TestSymbolDatabase .test_isVariableDeclarationIdentifiesSco pedStdDeclaration() |
test_isVariableDeclarationIdentifiesMany Scopes() | test_isVariableDeclarationIdentifiesManyScopes | TestSymbolDatabase .test_isVariableDeclarationIdentifiesMan yScopes() |
test_isVariableDeclarationIdentifiesPoin ters() | test_isVariableDeclarationIdentifiesPointers | TestSymbolDatabase .test_isVariableDeclarationIdentifiesPoi nters() |
test_isVariableDeclarationDoesNotIdentif yConstness() | test_isVariableDeclarationDoesNotIdentifyConstness | TestSymbolDatabase .test_isVariableDeclarationDoesNotIdenti fyConstness() |
test_isVariableDeclarationIdentifiesFirs tOfManyVariables() | test_isVariableDeclarationIdentifiesFirstOfManyVariables | TestSymbolDatabase .test_isVariableDeclarationIdentifiesFir stOfManyVariables() |
test_isVariableDeclarationIdentifiesScop edPointerDeclaration() | test_isVariableDeclarationIdentifiesScopedPointerDeclaration | TestSymbolDatabase .test_isVariableDeclarationIdentifiesSco pedPointerDeclaration() |
test_isVariableDeclarationIdentifiesDecl arationWithIndirection() | test_isVariableDeclarationIdentifiesDeclarationWithIndirection | TestSymbolDatabase .test_isVariableDeclarationIdentifiesDec larationWithIndirection() |
test_isVariableDeclarationIdentifiesDecl arationWithMultipleIndirection() | test_isVariableDeclarationIdentifiesDeclarationWithMultipleIndirection | TestSymbolDatabase .test_isVariableDeclarationIdentifiesDec larationWithMultipleIndirection() |
test_isVariableDeclarationIdentifiesArra y() | test_isVariableDeclarationIdentifiesArray | TestSymbolDatabase .test_isVariableDeclarationIdentifiesArr ay() |
test_isVariableDeclarationIdentifiesPoin terArray() | test_isVariableDeclarationIdentifiesPointerArray | TestSymbolDatabase .test_isVariableDeclarationIdentifiesPoi nterArray() |
test_isVariableDeclarationIdentifiesOfAr rayPointers() | test_isVariableDeclarationIdentifiesOfArrayPointers | TestSymbolDatabase .test_isVariableDeclarationIdentifiesOfA rrayPointers() |
isVariableDeclarationIdentifiesTemplated PointerVariable() | isVariableDeclarationIdentifiesTemplatedPointerVariable | TestSymbolDatabase .isVariableDeclarationIdentifiesTemplate dPointerVariable() |
isVariableDeclarationIdentifiesTemplated PointerToPointerVariable() | isVariableDeclarationIdentifiesTemplatedPointerToPointerVariable | TestSymbolDatabase .isVariableDeclarationIdentifiesTemplate dPointerToPointerVariable() |
isVariableDeclarationIdentifiesTemplated ArrayVariable() | isVariableDeclarationIdentifiesTemplatedArrayVariable | TestSymbolDatabase .isVariableDeclarationIdentifiesTemplate dArrayVariable() |
Statistics
Stat | SimpleName |
---|---|
Sum: | - |
Average: | - |
Minimum: | - |
Maximum: | - |
Standard deviation: | - |
Variance: | - |
Quality Gates
|
![]() | Code Query: Quality Gates Evolution |
8 quality gates matched
8 quality gates | Evolution | BaselineStatus | Status | BaselineValue | Value | Full Name |
---|---|---|---|---|---|---|
Blocker Issues | Pass | Pass | 0 issues | 0 issues | Quality Gate | |
Critical Issues | Warn | Warn | 5 issues | 5 issues | Quality Gate | |
New Blocker / Critical / High Issues | N/A | N/A | Pass | null | 0 issues | Quality Gate |
Critical Rules Violated | Fail | Fail | 3 rules | 3 rules | Quality Gate | |
Percentage Debt | Pass | Pass | 13.6 % | 13.6 % | Quality Gate | |
New Debt since Baseline | N/A | N/A | Pass | null | 0 man-days | Quality Gate |
Debt Rating per Namespace | Fail | Fail | 3 namespaces | 3 namespaces | Quality Gate | |
New Annual Interest since Baseline | N/A | N/A | Pass | null | 0 man-days | Quality Gate |
Statistics
Stat | Evolution | BaselineStatus | Status | BaselineValue | Value |
---|---|---|---|---|---|
Sum: | - | - | - | - | - |
Average: | - | - | - | - | - |
Minimum: | - | - | - | - | - |
Maximum: | - | - | - | - | - |
Standard deviation: | - | - | - | - | - |
Variance: | - | - | - | - | - |
![]() | Quality Gate Pass: Percentage Code Coverage |
Scalar Result: N/A %
![]() | Quality Gate Pass: Percentage Coverage on New Code |
Scalar Result: N/A %
![]() | Quality Gate Pass: Percentage Coverage on Refactored Code |
Scalar Result: N/A %
![]() | Quality Gate Pass: Blocker Issues |
No issue matched
![]() | Quality Gate Warn: Critical Issues |
5 issues matched
5 issues | Severity | Debt | Annual Interest | Full Name |
---|---|---|---|---|
Critical issue on: Tokenizer | Critical | 1d 2h | 2h 0min | Rule violated: Avoid types too big |
Critical issue on: TestTokenizer | Critical | 1d 2h | 2h 0min | Rule violated: Avoid types too big |
Critical issue on: TestSymbolDatabase | Critical | 1d 2h | 2h 0min | Rule violated: Avoid types too big |
Critical issue on: TestTokenizer | Critical | 1d 2h | 2h 0min | Rule violated: Avoid types with too many methods |
Critical issue on: Tokenizer.simplifyTypedef() | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Statistics
Stat | Severity | Debt | Annual Interest |
---|---|---|---|
Sum: | - | 5d 6h | 1d 2h |
Average: | - | 1d 1h | 2h 0min |
Minimum: | - | 6h 0min | 2h 0min |
Maximum: | - | 1d 2h | 2h 0min |
Standard deviation: | - | 1h 36min | 0min 0s |
Variance: | - | 1 152d | 0min 0s |
![]() | Quality Gate Pass: New Blocker / Critical / High Issues |
No issue matched
![]() | Quality Gate Fail: Critical Rules Violated |
3 rules matched
3 rules | issues | Full Name |
---|---|---|
Avoid types too big | 66 issues | Rule |
Avoid methods too big, too complex | 433 issues | Rule |
Avoid methods with too many parameters | 32 issues | Rule |
Statistics
Stat | issues |
---|---|
Sum: | 531 |
Average: | 177 |
Minimum: | 32 |
Maximum: | 433 |
Standard deviation: | 181.55 |
Variance: | 32 961 |
![]() | Quality Gate Pass: Percentage Debt |
Scalar Result: 13.6 %
![]() | Quality Gate Pass: New Debt since Baseline |
Scalar Result: 0 man-days
![]() | Quality Gate Fail: Debt Rating per Namespace |
3 namespaces matched
3 namespaces | debtRating | debtRatio | devTimeInManDay | debtInManDay | issues | Full Name |
---|---|---|---|---|---|---|
cppcheck | D | 39.52 | 1d 0h | 3h 31min | 3 issues | cppcheck |
cppcheck | D | 39.52 | 1d 0h | 3h 31min | 3 issues | cppcheck |
tinyxml2 | D | 20.22 | 14d 7h | 3d 0h | 129 issues | tinyxml2 |
Statistics
Stat | debtRating | debtRatio | devTimeInManDay | debtInManDay | issues |
---|---|---|---|---|---|
Sum: | - | 99.26 | 17d 1h | 3d 7h | 135 |
Average: | - | 33.09 | 5d 5h | 1d 2h | 45 |
Minimum: | - | 20.22 | 1d 0h | 3h 31min | 3 |
Maximum: | - | 39.52 | 14d 7h | 3d 0h | 129 |
Standard deviation: | - | 9.1 | 6d 4h | 1d 1h | 59.4 |
Variance: | - | 82.82 | 1 232 632d | 42 944d | 3 528 |
![]() | Quality Gate Pass: New Annual Interest since Baseline |
Scalar Result: 0 man-days
Object Oriented Design
![]() | Rule Violated: Base class should not use derivatives |
• How to Fix Issues: Understand the need for using derivatives, then imagine a new design, and then refactor. Typically an algorithm in the base class needs to access something from derived classes. You can try to encapsulate this access behind an abstract or a virtual method. If you see in the base class some conditions on typeof(DerivedClass) not only urgent refactoring is needed. Such condition can easily be replaced through an abstract or a virtual method. Sometime you'll see a base class that creates instance of some derived classes. In such situation, certainly using the factory method pattern http://en.wikipedia.org/wiki/Factory_method_pattern or the abstract factory pattern http://en.wikipedia.org/wiki/Abstract_factory_pattern will improve the design. The estimated Debt, which means the effort to fix such issue, is equal to 3 minutes per derived class used by the base class + 3 minutes per member of a derived class used by the base class.
2 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
2 types | derivedClassesUsed | derivedClassesMemberUsed | Debt | Severity | Full Name |
---|---|---|---|---|---|
XMLNode | 6 types | 5 methods | 33min | High | tinyxml2.XMLNode |
XMLNode | 6 types | no member | 18min | High | tinyxml2.XMLNode |
Statistics
Stat | derivedClassesUsed | derivedClassesMemberUsed | Debt | Severity |
---|---|---|---|---|
Sum: | 12 | 5 | 51min | - |
Average: | 6 | 2.5 | 25min | - |
Minimum: | 6 | 0 | 18min | - |
Maximum: | 6 | 5 | 33min | - |
Standard deviation: | 0 | 2.5 | 7min | - |
Variance: | 0 | 6.25 | 7d 0h | - |
![]() | Validated Rule: Class shouldn't be too deep in inheritance tree |
• How to Fix Issues: In Object-Oriented Programming, a well-known motto is Favor Composition over Inheritance. This is because inheritance comes with pitfalls. In general, the implementation of a derived class is very bound up with the base class implementation. Also a base class exposes implementation details to its derived classes, that's why it's often said that inheritance breaks encapsulation. On the other hands, Composition favors binding with interfaces over binding with implementations. Hence, not only the encapsulation is preserved, but the design is clearer, because interfaces make it explicit and less coupled. Hence, to break a long inheritance chain, Composition is often a powerful way to enhance the design of the refactored underlying logic. You can also read: http://en.wikipedia.org/wiki/Composition_over_inheritance and http://stackoverflow.com/questions/49002/prefer-composition-over-inheritance The estimated Debt, which means the effort to fix such issue, depends linearly upon the depth of inheritance.
No type matched
![]() | Validated Rule: Constructor should not call a virtual methods |
• How to Fix Issues: Violations reported can be solved by re-designing object initialisation or by declaring the parent class as sealed, if possible.
No method matched
![]() | Rule Violated: Don't assign static fields from instance methods |
• How to Fix Issues: If the static field is just assigned once in the program lifetime, make sure to declare it as readonly and assign it inline, or from the static constructor. In Object-Oriented-Programming the natural artifact to hold states that can be modified is instance fields. Hence to fix violations of this rule, make sure to hold assignable states through instance fields, not through static fields.
13 fields matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
13 fields | assignedBy | Debt | Severity | Full Name |
---|---|---|---|---|
exename | 1 method | 5min | Medium | __Globals.exename |
missingIncludeFlag | 1 method | 5min | Medium | Preprocessor.missingIncludeFlag |
missingSystemIncludeFlag | 1 method | 5min | Medium | Preprocessor.missingSystemIncludeFlag |
BITAND | 1 method | 5min | Medium | __Globals.BITAND |
BITOR | 1 method | 5min | Medium | __Globals.BITOR |
XOR | 1 method | 5min | Medium | __Globals.XOR |
LF | 1 method | 5min | Medium | __Globals.LF |
macroChar | 2 methods | 5min | Medium | Preprocessor.macroChar |
missingIncludeFlag | 1 method | 5min | Medium | Preprocessor.missingIncludeFlag |
missingSystemIncludeFlag | 1 method | 5min | Medium | Preprocessor.missingSystemIncludeFlag |
macroChar | 1 method | 5min | Medium | Preprocessor.macroChar |
missingIncludeFlag | 2 methods | 5min | Medium | Preprocessor.missingIncludeFlag |
missingSystemIncludeFlag | 1 method | 5min | Medium | Preprocessor.missingSystemIncludeFlag |
Statistics
Stat | assignedBy | Debt | Severity |
---|---|---|---|
Sum: | 15 | 1h 5min | - |
Average: | 1.15 | 5min | - |
Minimum: | 1 | 5min | - |
Maximum: | 2 | 5min | - |
Standard deviation: | 0.36 | 0min 0s | - |
Variance: | 0.13 | 0min 0s | - |
![]() | Rule Violated: Avoid Abstract Classes with too many methods |
• How to Fix Issues: Typically to fix such issue, the interface must be refactored in a grape of smaller single-responsibility interfaces. A classic example is a ISession large interface, responsible for holding states, run commands and offer various accesses and facilities. The classic problem for a large public interface is that it has many clients that consume it. As a consequence splitting it in smaller interfaces has an important impact and it is not always feasible. The estimated Debt, which means the effort to fix such issue, varies linearly from 20 minutes for an interface with 10 methods, up to 7 hours for an interface with 100 or more methods. The Debt is divided by two if the interface is not publicly visible, because in such situation only the current project is impacted by the refactoring.
6 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
6 types | Methods | Debt | Annual Interest | Full Name |
---|---|---|---|---|
XMLNode | 54 methods | 3h 35min | 59min | tinyxml2.XMLNode |
XMLNode | 54 methods | 3h 35min | 59min | tinyxml2.XMLNode |
TestFixture | 22 methods | 1h 13min | 17min | TestFixture |
Check | 16 methods | 46min | 9min | Check |
Check | 16 methods | 46min | 9min | Check |
Check | 16 methods | 46min | 9min | Check |
Statistics
Stat | Methods | Debt | Annual Interest |
---|---|---|---|
Sum: | 178 | 1d 2h | 2h 46min |
Average: | 29.67 | 1h 47min | 27min |
Minimum: | 16 | 46min | 9min |
Maximum: | 54 | 3h 35min | 59min |
Standard deviation: | 17.34 | 1h 17min | 22min |
Variance: | 300.56 | 742d | 64d |
![]() | Validated Rule: Type should not have too many responsibilities |
// Types using more than 8 different application namespaces
// are considered as having too many responsabilities.
warnif count > 0
from t in JustMyCode.Types
let applicationTypesUsed = t.TypesUsed.ExceptThirdParty().ToList()
let applicationNamespacesUsed = applicationTypesUsed.ParentNamespaces().ToList()
where applicationNamespacesUsed.Count > 8
// Use an empiric formula to sort by degree of responsabilities
let responsabilitiesMetric = (10 * applicationNamespacesUsed.Count + applicationTypesUsed.Count)/10
orderby responsabilitiesMetric descending
select new { t, applicationNamespacesUsed, applicationTypesUsed, responsabilitiesMetric }
No type matched
![]() | Rule Violated: Nested types should not be visible |
• How to Fix Issues: If you do not intend the nested type to be externally visible, change the type's accessibility. Otherwise, remove the nested type from its parent and make it non-nested. If the purpose of the nesting is to group some nested types, use a namespace to create the hierarchy instead. The estimated Debt, which means the effort to fix such issue, is 2 minutes per nested type plus 4 minutes per outter type using such nesting type.
146 types matched
- The following list of types is truncated and contains only the first 100 types of the 146 types matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
146 types | Visibility | typesUser | Debt | Severity | Full Name |
---|---|---|---|---|---|
MathLib+value | Public | no type | 2min 0s | Medium | MathLib+value |
Settings+Language | Public | no type | 2min 0s | Medium | Settings+Language |
Settings+Rule | Public | no type | 2min 0s | Medium | Settings+Rule |
Token+Type | Public | no type | 2min 0s | Medium | Token+Type |
Suppressions+SuppressionEntry | Public | no type | 2min 0s | Medium | Suppressions+SuppressionEntry |
InternalError+Type | Public | no type | 2min 0s | Medium | InternalError+Type |
Severity+SeverityType | Public | no type | 2min 0s | Medium | Severity+SeverityType |
ErrorLogger+ErrorMessage | Public | no type | 2min 0s | Medium | ErrorLogger+ErrorMessage |
ErrorLogger+ErrorMessage+FileLocation | Public | no type | 2min 0s | Medium | ErrorLogger+ErrorMessage+FileLocation |
ImportProject+FileSettings | Public | no type | 2min 0s | Medium | ImportProject+FileSettings |
Library+ErrorCode | Public | no type | 2min 0s | Medium | Library+ErrorCode |
Library+Error | Public | no type | 2min 0s | Medium | Library+Error |
Library+AllocFunc | Public | no type | 2min 0s | Medium | Library+AllocFunc |
Library+WarnInfo | Public | no type | 2min 0s | Medium | Library+WarnInfo |
Library+Container | Public | no type | 2min 0s | Medium | Library+Container |
Library+Container+Action | Public | no type | 2min 0s | Medium | Library+Container+Action |
Library+Container+Yield | Public | no type | 2min 0s | Medium | Library+Container+Yield |
Library+Container+Function | Public | no type | 2min 0s | Medium | Library+Container+Function |
Library+ArgumentChecks | Public | no type | 2min 0s | Medium | Library+ArgumentChecks |
Library+ArgumentChecks+IteratorInfo | Public | no type | 2min 0s | Medium | Library+ArgumentChecks+IteratorInfo |
Library+ArgumentChecks+MinSize | Public | no type | 2min 0s | Medium | Library+ArgumentChecks+MinSize |
Library+ArgumentChecks+MinSize+Type | Public | no type | 2min 0s | Medium | Library+ArgumentChecks+MinSize+Type |
Library+Function | Public | no type | 2min 0s | Medium | Library+Function |
Library+PodType | Public | no type | 2min 0s | Medium | Library+PodType |
Library+PlatformType | Public | no type | 2min 0s | Medium | Library+PlatformType |
Library+Platform | Public | no type | 2min 0s | Medium | Library+Platform |
Check+FileInfo | Public | no type | 2min 0s | Medium | Check+FileInfo |
Preprocessor+HeaderTypes | Public | no type | 2min 0s | Medium | Preprocessor+HeaderTypes |
Value+ValueType | Public | no type | 2min 0s | Medium | ValueFlow.Value+ValueType |
Value+MoveKind | Public | no type | 2min 0s | Medium | ValueFlow.Value+MoveKind |
Value+ValueKind | Public | no type | 2min 0s | Medium | ValueFlow.Value+ValueKind |
Platform+PlatformType | Public | no type | 2min 0s | Medium | cppcheck.Platform+PlatformType |
Output+Type | Public | no type | 2min 0s | Medium | simplecpp.Output+Type |
MathLib+value | Public | no type | 2min 0s | Medium | MathLib+value |
Token+Type | Public | no type | 2min 0s | Medium | Token+Type |
Suppressions+SuppressionEntry | Public | no type | 2min 0s | Medium | Suppressions+SuppressionEntry |
InternalError+Type | Public | no type | 2min 0s | Medium | InternalError+Type |
Severity+SeverityType | Public | no type | 2min 0s | Medium | Severity+SeverityType |
ErrorLogger+ErrorMessage | Public | no type | 2min 0s | Medium | ErrorLogger+ErrorMessage |
ErrorLogger+ErrorMessage+FileLocation | Public | no type | 2min 0s | Medium | ErrorLogger+ErrorMessage+FileLocation |
Library+ErrorCode | Public | no type | 2min 0s | Medium | Library+ErrorCode |
Library+Error | Public | no type | 2min 0s | Medium | Library+Error |
Library+AllocFunc | Public | no type | 2min 0s | Medium | Library+AllocFunc |
Library+WarnInfo | Public | no type | 2min 0s | Medium | Library+WarnInfo |
Library+Container | Public | no type | 2min 0s | Medium | Library+Container |
Library+Container+Action | Public | no type | 2min 0s | Medium | Library+Container+Action |
Library+Container+Yield | Public | no type | 2min 0s | Medium | Library+Container+Yield |
Library+Container+Function | Public | no type | 2min 0s | Medium | Library+Container+Function |
Library+ArgumentChecks | Public | no type | 2min 0s | Medium | Library+ArgumentChecks |
Library+ArgumentChecks+IteratorInfo | Public | no type | 2min 0s | Medium | Library+ArgumentChecks+IteratorInfo |
Library+ArgumentChecks+MinSize | Public | no type | 2min 0s | Medium | Library+ArgumentChecks+MinSize |
Library+ArgumentChecks+MinSize+Type | Public | no type | 2min 0s | Medium | Library+ArgumentChecks+MinSize+Type |
Library+Function | Public | no type | 2min 0s | Medium | Library+Function |
Library+PodType | Public | no type | 2min 0s | Medium | Library+PodType |
Library+PlatformType | Public | no type | 2min 0s | Medium | Library+PlatformType |
Library+Platform | Public | no type | 2min 0s | Medium | Library+Platform |
ImportProject+FileSettings | Public | no type | 2min 0s | Medium | ImportProject+FileSettings |
Settings+Language | Public | no type | 2min 0s | Medium | Settings+Language |
Settings+Rule | Public | no type | 2min 0s | Medium | Settings+Rule |
Check+FileInfo | Public | no type | 2min 0s | Medium | Check+FileInfo |
Type+NeedInitialization | Public | no type | 2min 0s | Medium | Type+NeedInitialization |
Type+BaseInfo | Public | no type | 2min 0s | Medium | Type+BaseInfo |
Type+FriendInfo | Public | no type | 2min 0s | Medium | Type+FriendInfo |
Function+Type | Public | no type | 2min 0s | Medium | Function+Type |
Scope+UsingInfo | Public | no type | 2min 0s | Medium | Scope+UsingInfo |
Scope+ScopeType | Public | no type | 2min 0s | Medium | Scope+ScopeType |
ValueType+Sign | Public | no type | 2min 0s | Medium | ValueType+Sign |
ValueType+Type | Public | no type | 2min 0s | Medium | ValueType+Type |
CheckBufferOverrun+ArrayInfo | Public | no type | 2min 0s | Medium | CheckBufferOverrun+ArrayInfo |
CheckBufferOverrun+MyFileInfo | Public | no type | 2min 0s | Medium | CheckBufferOverrun+MyFileInfo |
CheckBufferOverrun+MyFileInfo+ArrayUsage | Public | no type | 2min 0s | Medium | CheckBufferOverrun+MyFileInfo+ArrayUsage |
Filepointer+Operation | Public | no type | 2min 0s | Medium | Filepointer+Operation |
Filepointer+AppendMode | Public | no type | 2min 0s | Medium | Filepointer+AppendMode |
VarInfo+AllocStatus | Public | no type | 2min 0s | Medium | VarInfo+AllocStatus |
VarInfo+AllocInfo | Public | no type | 2min 0s | Medium | VarInfo+AllocInfo |
CheckMemoryLeak+AllocType | Public | no type | 2min 0s | Medium | CheckMemoryLeak+AllocType |
CheckUninitVar+Alloc | Public | no type | 2min 0s | Medium | CheckUninitVar+Alloc |
CheckUninitVar+MyFileInfo | Public | no type | 2min 0s | Medium | CheckUninitVar+MyFileInfo |
Variables+VariableType | Public | no type | 2min 0s | Medium | Variables+VariableType |
Variables+VariableUsage | Public | no type | 2min 0s | Medium | Variables+VariableUsage |
Variables+ScopeGuard | Public | no type | 2min 0s | Medium | Variables+ScopeGuard |
Preprocessor+HeaderTypes | Public | no type | 2min 0s | Medium | Preprocessor+HeaderTypes |
Output+Type | Public | no type | 2min 0s | Medium | simplecpp.Output+Type |
Macro+Error | Public | no type | 2min 0s | Medium | simplecpp.Macro+Error |
Macro+wrongNumberOfParameters | Public | no type | 2min 0s | Medium | simplecpp.Macro+wrongNumberOfParameters |
Macro+invalidHashHash | Public | no type | 2min 0s | Medium | simplecpp.Macro+invalidHashHash |
StrPair+AnonymousEnum | Public | no type | 2min 0s | Medium | tinyxml2.StrPair+AnonymousEnum |
MemPoolT<ITEM_SIZE>+AnonymousEnum | Public | no type | 2min 0s | Medium | tinyxml2.MemPoolT<ITEM_SIZE >+AnonymousEnum |
XMLElement+AnonymousEnum | Public | no type | 2min 0s | Medium | tinyxml2.XMLElement+AnonymousEnum |
Value+ValueType | Public | no type | 2min 0s | Medium | ValueFlow.Value+ValueType |
Value+MoveKind | Public | no type | 2min 0s | Medium | ValueFlow.Value+MoveKind |
Value+ValueKind | Public | no type | 2min 0s | Medium | ValueFlow.Value+ValueKind |
Platform+PlatformType | Public | no type | 2min 0s | Medium | cppcheck.Platform+PlatformType |
MathLib+value | Public | no type | 2min 0s | Medium | MathLib+value |
Suppressions+SuppressionEntry | Public | no type | 2min 0s | Medium | Suppressions+SuppressionEntry |
InternalError+Type | Public | no type | 2min 0s | Medium | InternalError+Type |
Severity+SeverityType | Public | no type | 2min 0s | Medium | Severity+SeverityType |
ErrorLogger+ErrorMessage | Public | no type | 2min 0s | Medium | ErrorLogger+ErrorMessage |
ErrorLogger+ErrorMessage+FileLocation | Public | no type | 2min 0s | Medium | ErrorLogger+ErrorMessage+FileLocation |
Library+ErrorCode | Public | no type | 2min 0s | Medium | Library+ErrorCode |
Statistics
Stat | Visibility | typesUser | Debt | Severity |
---|---|---|---|---|
Sum: | - | 0 | 4h 52min | - |
Average: | - | 0 | 2min 0s | - |
Minimum: | - | 0 | 2min 0s | - |
Maximum: | - | 0 | 2min 0s | - |
Standard deviation: | - | 0 | 0min 0s | - |
Variance: | - | 0 | 0min 0s | - |
![]() | Rule Violated: Projects with poor cohesion (RelationalCohesion) |
• How to Fix Issues: Matches of this present rule might reveal either assemblies with specific coding constraints (like code generated that have particular structure) either issues in design. In the second case, large refactoring can be planned not to respect this rule in particular, but to increase the overall design and code maintainability. The severity of issues of this rule is Low because the code metric Relational Cohesion is an information about the code structure state but is not actionable, it doesn't tell precisely what to do obtain a better score. Fixing actionable issues of others Architecture and Code Quality default rules will necessarily increase the Relational Cohesion scores.
1 project matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
1 project | ChildTypes | relationalCohesion | Relational cohesion | Debt | Severity | Full Name |
---|---|---|---|---|---|---|
cppcheck | 220 types | 4.75 | 4.81 | 10min | Low | cppcheck |
Statistics
Stat | ChildTypes | relationalCohesion | Relational cohesion | Debt | Severity |
---|---|---|---|---|---|
Sum: | 220 | 4.75 | 4.81 | 10min | - |
Average: | 220 | 4.75 | 4.81 | 10min | - |
Minimum: | 220 | 4.75 | 4.81 | 10min | - |
Maximum: | 220 | 4.75 | 4.81 | 10min | - |
Standard deviation: | 0 | 0 | 0 | 0min 0s | - |
Variance: | 0 | 0 | 0 | 0min 0s | - |
![]() | Validated Rule: Projects that don't satisfy the Abstractness/Instability principle |
• How to Fix Issues: Violations of this rule indicate assemblies with an improper abstractness / stability balance. • Either the assembly is potentially painful to maintain (i.e is massively used and contains mostly concrete types). This can be fixed by creating abstractions to avoid too high coupling with concrete implementations. • Either the assembly is potentially useless (i.e contains mostly abstractions and is not used enough). In such situation, the design must be reviewed to see if it can be enhanced. The severity of issues of this rule is Low because the Abstractness/Instability principle is an information about the code structure state but is not actionable, it doesn't tell precisely what to do obtain a better score. Fixing actionable issues of others Architecture and Code Quality default rules will necessarily push the Abstractness/Instability principle scores in the right direction.
No project matched
![]() | Code Query: Higher cohesion - lower coupling |
// It is deemed as a good software architecture practice to clearly separate
// 'abstract' namespaces containing only abstractions (interfaces, enumerations, delegates)
// from other 'concrete' namespaces, that contains classes and structures.
//
// Typically, the more concrete namespaces rely on abstract namespaces *only*,
// the more Decoupled is the architecture, and the more Cohesive are
// classes inside concrete namespaces.
//
// The following code query, define sets of abstract and concrete namespaces
// and shows for each concrete namespaces, which concrete and abstract namespaces are used.
//
// This query can be adapted to a rule, depending on how much you want
// your code architecture being decoupled.
//
let abstractNamespaces = JustMyCode.Namespaces.Where(
n => n.ChildTypes.Where(t => !t.IsInterface && !t.IsEnumeration ).Count() == 0
).ToHashSet()
let concreteNamespaces = JustMyCode.Namespaces.Except(abstractNamespaces).ToHashSet()
from n in concreteNamespaces
let namespacesUsed = n.NamespacesUsed.ExceptThirdParty()
let concreteNamespacesUsed = namespacesUsed.Except(abstractNamespaces)
let abstractNamespacesUsed = namespacesUsed.Except(concreteNamespaces)
select new { n, concreteNamespacesUsed , abstractNamespacesUsed }
99 namespaces matched
99 namespaces | concreteNamespacesUsed | abstractNamespacesUsed | Full Name |
---|---|---|---|
3 namespaces | no namespace | ||
ValueFlow | 1 namespace | no namespace | ValueFlow |
cppcheck | no namespace | no namespace | cppcheck |
simplecpp | no namespace | no namespace | simplecpp |
anonymous_namespace{cppcheckexecutor .cpp} | no namespace | no namespace | anonymous_namespace{cppcheckexecutor .cpp} |
9 namespaces | no namespace | ||
simplecpp | no namespace | no namespace | simplecpp |
anonymous_namespace{simplecpp.cpp} | 1 namespace | no namespace | anonymous_namespace{simplecpp.cpp} |
tinyxml2 | no namespace | no namespace | tinyxml2 |
ValueFlow | 1 namespace | no namespace | ValueFlow |
cppcheck | 1 namespace | no namespace | cppcheck |
anonymous_namespace{check64bit.cpp} | 1 namespace | no namespace | anonymous_namespace{check64bit.cpp} |
anonymous_namespace{checkassert.cpp} | 1 namespace | no namespace | anonymous_namespace{checkassert.cpp} |
anonymous_namespace{checkautovariables .cpp} | 1 namespace | no namespace | anonymous_namespace{checkautovariables .cpp} |
anonymous_namespace{checkbool.cpp} | 1 namespace | no namespace | anonymous_namespace{checkbool.cpp} |
anonymous_namespace{checkboost.cpp} | 1 namespace | no namespace | anonymous_namespace{checkboost.cpp} |
anonymous_namespace{checkbufferoverrun .cpp} | 1 namespace | no namespace | anonymous_namespace{checkbufferoverrun .cpp} |
anonymous_namespace{checkclass.cpp} | 1 namespace | no namespace | anonymous_namespace{checkclass.cpp} |
anonymous_namespace{checkcondition.cpp} | 1 namespace | no namespace | anonymous_namespace{checkcondition.cpp} |
anonymous_namespace{checkfunctions.cpp} | 1 namespace | no namespace | anonymous_namespace{checkfunctions.cpp} |
anonymous_namespace{checkstring.cpp} | 1 namespace | no namespace | anonymous_namespace{checkstring.cpp} |
anonymous_namespace{checkexceptionsafety .cpp} | 1 namespace | no namespace | anonymous_namespace{checkexceptionsafety .cpp} |
anonymous_namespace{checkio.cpp} | 1 namespace | no namespace | anonymous_namespace{checkio.cpp} |
anonymous_namespace{checkleakautovar .cpp} | 1 namespace | no namespace | anonymous_namespace{checkleakautovar .cpp} |
anonymous_namespace{checkmemoryleak.cpp} | 1 namespace | no namespace | anonymous_namespace{checkmemoryleak.cpp} |
anonymous_namespace{checknullpointer .cpp} | 1 namespace | no namespace | anonymous_namespace{checknullpointer .cpp} |
anonymous_namespace{checkother.cpp} | 1 namespace | no namespace | anonymous_namespace{checkother.cpp} |
anonymous_namespace{checkpostfixoperator .cpp} | 1 namespace | no namespace | anonymous_namespace{checkpostfixoperator .cpp} |
anonymous_namespace{checksizeof.cpp} | 1 namespace | no namespace | anonymous_namespace{checksizeof.cpp} |
anonymous_namespace{checkstl.cpp} | 1 namespace | no namespace | anonymous_namespace{checkstl.cpp} |
anonymous_namespace{checktype.cpp} | 1 namespace | no namespace | anonymous_namespace{checktype.cpp} |
anonymous_namespace{checkuninitvar.cpp} | 1 namespace | no namespace | anonymous_namespace{checkuninitvar.cpp} |
anonymous_namespace{checkunusedfunctions .cpp} | no namespace | no namespace | anonymous_namespace{checkunusedfunctions .cpp} |
anonymous_namespace{checkunusedvar.cpp} | 1 namespace | no namespace | anonymous_namespace{checkunusedvar.cpp} |
anonymous_namespace{checkvaarg.cpp} | 1 namespace | no namespace | anonymous_namespace{checkvaarg.cpp} |
anonymous_namespace{importproject.cpp} | 2 namespaces | no namespace | anonymous_namespace{importproject.cpp} |
anonymous_namespace{settings.cpp} | no namespace | no namespace | anonymous_namespace{settings.cpp} |
anonymous_namespace{symboldatabase.cpp} | 1 namespace | no namespace | anonymous_namespace{symboldatabase.cpp} |
anonymous_namespace{timer.cpp} | 1 namespace | no namespace | anonymous_namespace{timer.cpp} |
anonymous_namespace{tokenize.cpp} | 1 namespace | no namespace | anonymous_namespace{tokenize.cpp} |
anonymous_namespace{valueflow.cpp} | 2 namespaces | no namespace | anonymous_namespace{valueflow.cpp} |
4 namespaces | no namespace | ||
cppcheck | no namespace | no namespace | cppcheck |
ValueFlow | 1 namespace | no namespace | ValueFlow |
simplecpp | no namespace | no namespace | simplecpp |
anonymous_namespace{cppcheckexecutor .cpp} | no namespace | no namespace | anonymous_namespace{cppcheckexecutor .cpp} |
anonymous_namespace{test64bit.cpp} | 1 namespace | no namespace | anonymous_namespace{test64bit.cpp} |
anonymous_namespace{testassert.cpp} | 1 namespace | no namespace | anonymous_namespace{testassert.cpp} |
anonymous_namespace{testautovariables .cpp} | 1 namespace | no namespace | anonymous_namespace{testautovariables .cpp} |
anonymous_namespace{testbool.cpp} | 1 namespace | no namespace | anonymous_namespace{testbool.cpp} |
anonymous_namespace{testboost.cpp} | 1 namespace | no namespace | anonymous_namespace{testboost.cpp} |
tinyxml2 | no namespace | no namespace | tinyxml2 |
anonymous_namespace{testbufferoverrun .cpp} | 1 namespace | no namespace | anonymous_namespace{testbufferoverrun .cpp} |
anonymous_namespace{testcharvar.cpp} | 1 namespace | no namespace | anonymous_namespace{testcharvar.cpp} |
anonymous_namespace{testclass.cpp} | 1 namespace | no namespace | anonymous_namespace{testclass.cpp} |
anonymous_namespace{testcmdlineparser .cpp} | 1 namespace | no namespace | anonymous_namespace{testcmdlineparser .cpp} |
anonymous_namespace{testcondition.cpp} | 1 namespace | no namespace | anonymous_namespace{testcondition.cpp} |
anonymous_namespace{testconstructors .cpp} | 1 namespace | no namespace | anonymous_namespace{testconstructors .cpp} |
anonymous_namespace{testcppcheck.cpp} | 1 namespace | no namespace | anonymous_namespace{testcppcheck.cpp} |
anonymous_namespace{testerrorlogger.cpp} | 1 namespace | no namespace | anonymous_namespace{testerrorlogger.cpp} |
anonymous_namespace{testexceptionsafety .cpp} | 1 namespace | no namespace | anonymous_namespace{testexceptionsafety .cpp} |
anonymous_namespace{testfilelister.cpp} | 1 namespace | no namespace | anonymous_namespace{testfilelister.cpp} |
anonymous_namespace{testgarbage.cpp} | 1 namespace | no namespace | anonymous_namespace{testgarbage.cpp} |
anonymous_namespace{testincompletestatem ent.cpp} | 1 namespace | no namespace | anonymous_namespace{testincompletestatem ent.cpp} |
anonymous_namespace{testio.cpp} | 1 namespace | no namespace | anonymous_namespace{testio.cpp} |
anonymous_namespace{testleakautovar.cpp} | 1 namespace | no namespace | anonymous_namespace{testleakautovar.cpp} |
anonymous_namespace{testlibrary.cpp} | 1 namespace | no namespace | anonymous_namespace{testlibrary.cpp} |
anonymous_namespace{testmathlib.cpp} | 1 namespace | no namespace | anonymous_namespace{testmathlib.cpp} |
anonymous_namespace{testmemleak.cpp} | 1 namespace | no namespace | anonymous_namespace{testmemleak.cpp} |
anonymous_namespace{testnullpointer.cpp} | 1 namespace | no namespace | anonymous_namespace{testnullpointer.cpp} |
anonymous_namespace{testfunctions.cpp} | 1 namespace | no namespace | anonymous_namespace{testfunctions.cpp} |
anonymous_namespace{testoptions.cpp} | 1 namespace | no namespace | anonymous_namespace{testoptions.cpp} |
anonymous_namespace{testother.cpp} | 1 namespace | no namespace | anonymous_namespace{testother.cpp} |
anonymous_namespace{testpath.cpp} | 1 namespace | no namespace | anonymous_namespace{testpath.cpp} |
anonymous_namespace{testpathmatch.cpp} | 1 namespace | no namespace | anonymous_namespace{testpathmatch.cpp} |
anonymous_namespace{testpostfixoperator .cpp} | 1 namespace | no namespace | anonymous_namespace{testpostfixoperator .cpp} |
anonymous_namespace{testpreprocessor .cpp} | 1 namespace | no namespace | anonymous_namespace{testpreprocessor .cpp} |
anonymous_namespace{testsamples.cpp} | 1 namespace | no namespace | anonymous_namespace{testsamples.cpp} |
anonymous_namespace{testsimplifytemplate .cpp} | 1 namespace | no namespace | anonymous_namespace{testsimplifytemplate .cpp} |
anonymous_namespace{testsimplifytokens .cpp} | 1 namespace | no namespace | anonymous_namespace{testsimplifytokens .cpp} |
anonymous_namespace{testsimplifytypedef .cpp} | 1 namespace | no namespace | anonymous_namespace{testsimplifytypedef .cpp} |
anonymous_namespace{testsizeof.cpp} | 1 namespace | no namespace | anonymous_namespace{testsizeof.cpp} |
anonymous_namespace{teststl.cpp} | 1 namespace | no namespace | anonymous_namespace{teststl.cpp} |
anonymous_namespace{teststring.cpp} | 1 namespace | no namespace | anonymous_namespace{teststring.cpp} |
anonymous_namespace{testsuppressions .cpp} | 1 namespace | no namespace | anonymous_namespace{testsuppressions .cpp} |
anonymous_namespace{testsymboldatabase .cpp} | 1 namespace | no namespace | anonymous_namespace{testsymboldatabase .cpp} |
anonymous_namespace{testthreadexecutor .cpp} | 1 namespace | no namespace | anonymous_namespace{testthreadexecutor .cpp} |
anonymous_namespace{testtimer.cpp} | 1 namespace | no namespace | anonymous_namespace{testtimer.cpp} |
anonymous_namespace{testtoken.cpp} | 1 namespace | no namespace | anonymous_namespace{testtoken.cpp} |
anonymous_namespace{testtokenize.cpp} | 1 namespace | no namespace | anonymous_namespace{testtokenize.cpp} |
anonymous_namespace{testtokenlist.cpp} | 1 namespace | no namespace | anonymous_namespace{testtokenlist.cpp} |
anonymous_namespace{testtype.cpp} | 1 namespace | no namespace | anonymous_namespace{testtype.cpp} |
anonymous_namespace{testuninitvar.cpp} | 1 namespace | no namespace | anonymous_namespace{testuninitvar.cpp} |
anonymous_namespace{testunusedfunctions .cpp} | 1 namespace | no namespace | anonymous_namespace{testunusedfunctions .cpp} |
anonymous_namespace{testunusedprivfunc .cpp} | 1 namespace | no namespace | anonymous_namespace{testunusedprivfunc .cpp} |
anonymous_namespace{testunusedvar.cpp} | 1 namespace | no namespace | anonymous_namespace{testunusedvar.cpp} |
anonymous_namespace{testvaarg.cpp} | 1 namespace | no namespace | anonymous_namespace{testvaarg.cpp} |
anonymous_namespace{testvalueflow.cpp} | 1 namespace | no namespace | anonymous_namespace{testvalueflow.cpp} |
anonymous_namespace{testvarid.cpp} | 1 namespace | no namespace | anonymous_namespace{testvarid.cpp} |
Statistics
Stat | concreteNamespacesUsed | abstractNamespacesUsed |
---|---|---|
Sum: | 103 | 0 |
Average: | 1.04 | 0 |
Minimum: | 0 | 0 |
Maximum: | 9 | 0 |
Standard deviation: | 0.95 | 0 |
Variance: | 0.91 | 0 |
![]() | Rule Violated: Constructors of abstract classes should be declared as protected or private |
// Constructors of an abstract class can only be accessed from this class and derived class.
// Declaring such a constructor with another visibility level is useless and potentially misleading.
warnif count > 0
from t in Application.Types where
t.IsClass &&
t.IsAbstract
let ctors = t.Constructors.Where(c => !c.IsProtected && !c.IsPrivate)
where ctors.Count() > 0
select new { t, ctors }
// Notice that if a constructor of an abstract class is declared as private,
// it can only be accessed from derived classes nested in the abstract class.
12 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
12 types | ctors | Full Name |
---|---|---|
TimerResultsIntf | 2 methods | TimerResultsIntf |
ErrorLogger | 2 methods | ErrorLogger |
Check | 2 methods | Check |
ErrorLogger | 2 methods | ErrorLogger |
TimerResultsIntf | 2 methods | TimerResultsIntf |
Check | 2 methods | Check |
MemPool | 2 methods | tinyxml2.MemPool |
ErrorLogger | 2 methods | ErrorLogger |
TimerResultsIntf | 2 methods | TimerResultsIntf |
Check | 2 methods | Check |
TestFixture | 2 methods | TestFixture |
MemPool | 1 method | tinyxml2.MemPool |
Statistics
Stat | ctors |
---|---|
Sum: | 23 |
Average: | 1.92 |
Minimum: | 1 |
Maximum: | 2 |
Standard deviation: | 0.28 |
Variance: | 0.076 |
![]() | Validated Rule: The class does not have a constructor. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="noConstructor"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.Medium
}
No field matched
![]() | Validated Rule: Class has a constructor with 1 argument that is not explicit. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="noExplicitConstructor"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.Medium
}
No field matched
![]() | Validated Rule: Value of pointer var, which points to allocated memory, is copied in copy constructor instead of allocating new memory. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="copyCtorPointerCopying"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.Medium
}
No field matched
![]() | Validated Rule: class class does not have a copy constructor which is recommended since the class contains a pointer to allocated memory. |