doc: changed --doc output to Markdown syntax
This commit is contained in:
parent
8788e58cbb
commit
fbc6323a9b
|
@ -657,7 +657,7 @@ bool CmdLineParser::ParseFromArgs(int argc, const char* const argv[])
|
||||||
const std::string& name((*it)->name());
|
const std::string& name((*it)->name());
|
||||||
const std::string info((*it)->classInfo());
|
const std::string info((*it)->classInfo());
|
||||||
if (!name.empty() && !info.empty())
|
if (!name.empty() && !info.empty())
|
||||||
doc << "===" << name << "===\n"
|
doc << "## " << name << " ##\n"
|
||||||
<< info << "\n";
|
<< info << "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -81,8 +81,8 @@ private:
|
||||||
|
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "Check if there is 64-bit portability issues:\n"
|
return "Check if there is 64-bit portability issues:\n"
|
||||||
"* assign address to/from int/long\n"
|
"- assign address to/from int/long\n"
|
||||||
"* casting address from/to integer when returning from function\n";
|
"- casting address from/to integer when returning from function\n";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -110,12 +110,12 @@ private:
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "A pointer to a variable is only valid as long as the variable is in scope.\n"
|
return "A pointer to a variable is only valid as long as the variable is in scope.\n"
|
||||||
"Check:\n"
|
"Check:\n"
|
||||||
"* returning a pointer to auto or temporary variable\n"
|
"- returning a pointer to auto or temporary variable\n"
|
||||||
"* assigning address of an variable to an effective parameter of a function\n"
|
"- assigning address of an variable to an effective parameter of a function\n"
|
||||||
"* returning reference to local/temporary variable\n"
|
"- returning reference to local/temporary variable\n"
|
||||||
"* returning address of function parameter\n"
|
"- returning address of function parameter\n"
|
||||||
"* suspicious assignment of pointer argument\n"
|
"- suspicious assignment of pointer argument\n"
|
||||||
"* useless assignment of function argument\n";
|
"- useless assignment of function argument\n";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -130,14 +130,13 @@ private:
|
||||||
|
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "Boolean type checks\n"
|
return "Boolean type checks\n"
|
||||||
|
"- using increment on boolean\n"
|
||||||
"* using increment on boolean\n"
|
"- comparison of a boolean with a non-zero integer\n"
|
||||||
"* comparison of a boolean with a non-zero integer\n"
|
"- comparison of a boolean expression with an integer other than 0 or 1\n"
|
||||||
"* comparison of a boolean expression with an integer other than 0 or 1\n"
|
"- comparison of a function returning boolean value using relational operator\n"
|
||||||
"* comparison of a function returning boolean value using relational operator\n"
|
"- comparison of a boolean value with boolean value using relational operator\n"
|
||||||
"* comparison of a boolean value with boolean value using relational operator\n"
|
"- using bool in bitwise expression\n"
|
||||||
"* using bool in bitwise expression\n"
|
"- pointer addition in condition (either dereference is forgot or pointer overflow is required to make the condition false)\n";
|
||||||
"* pointer addition in condition (either dereference is forgot or pointer overflow is required to make the condition false)\n";
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -70,7 +70,7 @@ private:
|
||||||
|
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "Check for invalid usage of Boost:\n"
|
return "Check for invalid usage of Boost:\n"
|
||||||
"* container modification during BOOST_FOREACH\n";
|
"- container modification during BOOST_FOREACH\n";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -258,16 +258,16 @@ private:
|
||||||
|
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "Out of bounds checking:\n"
|
return "Out of bounds checking:\n"
|
||||||
"* Array index out of bounds detection by value flow analysis\n"
|
"- Array index out of bounds detection by value flow analysis\n"
|
||||||
"* Dangerous usage of strncat()\n"
|
"- Dangerous usage of strncat()\n"
|
||||||
"* char constant passed as size to function like memset()\n"
|
"- char constant passed as size to function like memset()\n"
|
||||||
"* strncpy() leaving string unterminated\n"
|
"- strncpy() leaving string unterminated\n"
|
||||||
"* Accessing array with negative index\n"
|
"- Accessing array with negative index\n"
|
||||||
"* Unsafe usage of main(argv, argc) arguments\n"
|
"- Unsafe usage of main(argv, argc) arguments\n"
|
||||||
"* Accessing array with index variable before checking its value\n"
|
"- Accessing array with index variable before checking its value\n"
|
||||||
"* Check for large enough arrays being passed to functions\n"
|
"- Check for large enough arrays being passed to functions\n"
|
||||||
"* Writing beyond bounds of a buffer\n"
|
"- Writing beyond bounds of a buffer\n"
|
||||||
"* Allocating memory with a negative size\n";
|
"- Allocating memory with a negative size\n";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -193,23 +193,23 @@ private:
|
||||||
|
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "Check the code for each class.\n"
|
return "Check the code for each class.\n"
|
||||||
"* Missing constructors and copy constructors\n"
|
"- Missing constructors and copy constructors\n"
|
||||||
//"* Missing allocation of memory in copy constructor\n"
|
//"- Missing allocation of memory in copy constructor\n"
|
||||||
"* Are all variables initialized by the constructors?\n"
|
"- Are all variables initialized by the constructors?\n"
|
||||||
"* Are all variables assigned by 'operator='?\n"
|
"- Are all variables assigned by 'operator='?\n"
|
||||||
"* Warn if memset, memcpy etc are used on a class\n"
|
"- Warn if memset, memcpy etc are used on a class\n"
|
||||||
"* Warn if memory for classes is allocated with malloc()\n"
|
"- Warn if memory for classes is allocated with malloc()\n"
|
||||||
"* If it's a base class, check that the destructor is virtual\n"
|
"- If it's a base class, check that the destructor is virtual\n"
|
||||||
"* Are there unused private functions?\n"
|
"- Are there unused private functions?\n"
|
||||||
"* 'operator=' should return reference to self\n"
|
"- 'operator=' should return reference to self\n"
|
||||||
"* 'operator=' should check for assignment to self\n"
|
"- 'operator=' should check for assignment to self\n"
|
||||||
"* Constness for member functions\n"
|
"- Constness for member functions\n"
|
||||||
"* Order of initializations\n"
|
"- Order of initializations\n"
|
||||||
"* Suggest usage of initialization list\n"
|
"- Suggest usage of initialization list\n"
|
||||||
"* Initialization of a member with itself\n"
|
"- Initialization of a member with itself\n"
|
||||||
"* Suspicious subtraction from 'this'\n"
|
"- Suspicious subtraction from 'this'\n"
|
||||||
"* Call of pure virtual function in constructor/destructor\n"
|
"- Call of pure virtual function in constructor/destructor\n"
|
||||||
"* Duplicated inherited data members\n";
|
"- Duplicated inherited data members\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// operatorEqRetRefThis helper functions
|
// operatorEqRetRefThis helper functions
|
||||||
|
|
|
@ -130,14 +130,14 @@ private:
|
||||||
|
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "Match conditions with assignments and other conditions:\n"
|
return "Match conditions with assignments and other conditions:\n"
|
||||||
"* Mismatching assignment and comparison => comparison is always true/false\n"
|
"- Mismatching assignment and comparison => comparison is always true/false\n"
|
||||||
"* Mismatching lhs and rhs in comparison => comparison is always true/false\n"
|
"- Mismatching lhs and rhs in comparison => comparison is always true/false\n"
|
||||||
"* Detect matching 'if' and 'else if' conditions\n"
|
"- Detect matching 'if' and 'else if' conditions\n"
|
||||||
"* Mismatching bitand (a &= 0xf0; a &= 1; => a = 0)\n"
|
"- Mismatching bitand (a &= 0xf0; a &= 1; => a = 0)\n"
|
||||||
"* Find dead code which is inaccessible due to the counter-conditions check in nested if statements\n"
|
"- Find dead code which is inaccessible due to the counter-conditions check in nested if statements\n"
|
||||||
"* condition that is always true/false\n"
|
"- condition that is always true/false\n"
|
||||||
"* mutual exclusion over || always evaluating to true\n"
|
"- mutual exclusion over || always evaluating to true\n"
|
||||||
"* Comparisons of modulo results that are always true/false.\n";
|
"- Comparisons of modulo results that are always true/false.\n";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -163,15 +163,15 @@ private:
|
||||||
/** wiki formatted description of the class (for --doc) */
|
/** wiki formatted description of the class (for --doc) */
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "Checking exception safety\n"
|
return "Checking exception safety\n"
|
||||||
"* Throwing exceptions in destructors\n"
|
"- Throwing exceptions in destructors\n"
|
||||||
"* Throwing exception during invalid state\n"
|
"- Throwing exception during invalid state\n"
|
||||||
"* Throwing a copy of a caught exception instead of rethrowing the original exception\n"
|
"- Throwing a copy of a caught exception instead of rethrowing the original exception\n"
|
||||||
"* Exception caught by value instead of by reference\n"
|
"- Exception caught by value instead of by reference\n"
|
||||||
"* Throwing exception in noexcept function\n"
|
"- Throwing exception in noexcept function\n"
|
||||||
"* Throwing exception in nothrow() function\n"
|
"- Throwing exception in nothrow() function\n"
|
||||||
"* Throwing exception in __attribute__((nothrow)) function\n"
|
"- Throwing exception in __attribute__((nothrow)) function\n"
|
||||||
"* Throwing exception in __declspec(nothrow) function\n"
|
"- Throwing exception in __declspec(nothrow) function\n"
|
||||||
"* Unhandled exception specification when calling function foo()\n";
|
"- Unhandled exception specification when calling function foo()\n";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -150,20 +150,20 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string myName() {
|
static std::string myName() {
|
||||||
return "IO";
|
return "IO using format string";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "Check input/output operations.\n"
|
return "Check format string input/output operations.\n"
|
||||||
"* Bad usage of the function 'sprintf' (overlapping data)\n"
|
"- Bad usage of the function 'sprintf' (overlapping data)\n"
|
||||||
"* Missing or wrong width specifiers in 'scanf' format string\n"
|
"- Missing or wrong width specifiers in 'scanf' format string\n"
|
||||||
"* Use a file that has been closed\n"
|
"- Use a file that has been closed\n"
|
||||||
"* File input/output without positioning results in undefined behaviour\n"
|
"- File input/output without positioning results in undefined behaviour\n"
|
||||||
"* Read to a file that has only been opened for writing (or vice versa)\n"
|
"- Read to a file that has only been opened for writing (or vice versa)\n"
|
||||||
"* Repositioning operation on a file opened in append mode\n"
|
"- Repositioning operation on a file opened in append mode\n"
|
||||||
"* Using fflush() on an input stream\n"
|
"- Using fflush() on an input stream\n"
|
||||||
"* Invalid usage of output stream. For example: 'std::cout << std::cout;'\n"
|
"- Invalid usage of output stream. For example: 'std::cout << std::cout;'\n"
|
||||||
"* Wrong number of arguments given to 'printf' or 'scanf;'\n";
|
"- Wrong number of arguments given to 'printf' or 'scanf;'\n";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -105,7 +105,7 @@ private:
|
||||||
/** class info in WIKI format. Used by --doc */
|
/** class info in WIKI format. Used by --doc */
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "Null pointers\n"
|
return "Null pointers\n"
|
||||||
"* null pointer dereferencing\n";
|
"- null pointer dereferencing\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -353,59 +353,59 @@ private:
|
||||||
return "Other checks\n"
|
return "Other checks\n"
|
||||||
|
|
||||||
// error
|
// error
|
||||||
"* Assigning bool value to pointer (converting bool value to address)\n"
|
"- Assigning bool value to pointer (converting bool value to address)\n"
|
||||||
"* division with zero\n"
|
"- division with zero\n"
|
||||||
"* scoped object destroyed immediately after construction\n"
|
"- scoped object destroyed immediately after construction\n"
|
||||||
"* assignment in an assert statement\n"
|
"- assignment in an assert statement\n"
|
||||||
"* free() or delete of an invalid memory location\n"
|
"- free() or delete of an invalid memory location\n"
|
||||||
"* double free() or double closedir()\n"
|
"- double free() or double closedir()\n"
|
||||||
"* bitwise operation with negative right operand\n"
|
"- bitwise operation with negative right operand\n"
|
||||||
"* provide wrong dimensioned array to pipe() system command (--std=posix)\n"
|
"- provide wrong dimensioned array to pipe() system command (--std=posix)\n"
|
||||||
"* cast the return values of getc(),fgetc() and getchar() to character and compare it to EOF\n"
|
"- cast the return values of getc(),fgetc() and getchar() to character and compare it to EOF\n"
|
||||||
"* invalid input values for functions\n"
|
"- invalid input values for functions\n"
|
||||||
|
|
||||||
// warning
|
// warning
|
||||||
"* either division by zero or useless condition\n"
|
"- either division by zero or useless condition\n"
|
||||||
"* memset() with a value out of range as the 2nd parameter\n"
|
"- memset() with a value out of range as the 2nd parameter\n"
|
||||||
"* return value of certain functions not used\n"
|
"- return value of certain functions not used\n"
|
||||||
|
|
||||||
// performance
|
// performance
|
||||||
"* redundant data copying for const variable\n"
|
"- redundant data copying for const variable\n"
|
||||||
"* subsequent assignment or copying to a variable or buffer\n"
|
"- subsequent assignment or copying to a variable or buffer\n"
|
||||||
|
|
||||||
// portability
|
// portability
|
||||||
"* memset() with a float as the 2nd parameter\n"
|
"- memset() with a float as the 2nd parameter\n"
|
||||||
|
|
||||||
// style
|
// style
|
||||||
"* C-style pointer cast in cpp file\n"
|
"- C-style pointer cast in cpp file\n"
|
||||||
"* casting between incompatible pointer types\n"
|
"- casting between incompatible pointer types\n"
|
||||||
"* redundant if\n"
|
"- redundant if\n"
|
||||||
"* passing parameter by value\n"
|
"- passing parameter by value\n"
|
||||||
"* [[IncompleteStatement|Incomplete statement]]\n"
|
"- [Incomplete statement](IncompleteStatement)\n"
|
||||||
"* [[charvar|check how signed char variables are used]]\n"
|
"- [check how signed char variables are used](CharVar)\n"
|
||||||
"* variable scope can be limited\n"
|
"- variable scope can be limited\n"
|
||||||
"* unusual pointer arithmetic. For example: \"abc\" + 'd'\n"
|
"- unusual pointer arithmetic. For example: \"abc\" + 'd'\n"
|
||||||
"* redundant assignment in a switch statement\n"
|
"- redundant assignment in a switch statement\n"
|
||||||
"* redundant pre/post operation in a switch statement\n"
|
"- redundant pre/post operation in a switch statement\n"
|
||||||
"* redundant bitwise operation in a switch statement\n"
|
"- redundant bitwise operation in a switch statement\n"
|
||||||
"* redundant strcpy in a switch statement\n"
|
"- redundant strcpy in a switch statement\n"
|
||||||
"* assignment of a variable to itself\n"
|
"- assignment of a variable to itself\n"
|
||||||
"* Suspicious case labels in switch()\n"
|
"- Suspicious case labels in switch()\n"
|
||||||
"* Suspicious equality comparisons\n"
|
"- Suspicious equality comparisons\n"
|
||||||
"* Comparison of values leading always to true or false\n"
|
"- Comparison of values leading always to true or false\n"
|
||||||
"* Clarify calculation with parentheses\n"
|
"- Clarify calculation with parentheses\n"
|
||||||
"* suspicious comparison of '\\0' with a char* variable\n"
|
"- suspicious comparison of '\\0' with a char* variable\n"
|
||||||
"* duplicate break statement\n"
|
"- duplicate break statement\n"
|
||||||
"* unreachable code\n"
|
"- unreachable code\n"
|
||||||
"* testing if unsigned variable is negative\n"
|
"- testing if unsigned variable is negative\n"
|
||||||
"* testing is unsigned variable is positive\n"
|
"- testing is unsigned variable is positive\n"
|
||||||
"* Suspicious use of ; at the end of 'if/for/while' statement.\n"
|
"- Suspicious use of ; at the end of 'if/for/while' statement.\n"
|
||||||
"* Array filled incompletely using memset/memcpy/memmove.\n"
|
"- Array filled incompletely using memset/memcpy/memmove.\n"
|
||||||
"* redundant get and set function of user id (--std=posix).\n"
|
"- redundant get and set function of user id (--std=posix).\n"
|
||||||
"* Passing NULL pointer to function with variable number of arguments leads to UB on some platforms.\n"
|
"- Passing NULL pointer to function with variable number of arguments leads to UB on some platforms.\n"
|
||||||
"* NaN (not a number) value used in arithmetic expression.\n"
|
"- NaN (not a number) value used in arithmetic expression.\n"
|
||||||
"* comma in return statement (the comma can easily be misread as a semicolon).\n"
|
"- comma in return statement (the comma can easily be misread as a semicolon).\n"
|
||||||
"* prefer erfc, expm1 or log1p to avoid loss of precision.\n";
|
"- prefer erfc, expm1 or log1p to avoid loss of precision.\n";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -120,13 +120,13 @@ private:
|
||||||
|
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "sizeof() usage checks\n"
|
return "sizeof() usage checks\n"
|
||||||
"* sizeof for array given as function argument\n"
|
"- sizeof for array given as function argument\n"
|
||||||
"* sizeof for numeric given as function argument\n"
|
"- sizeof for numeric given as function argument\n"
|
||||||
"* using sizeof(pointer) instead of the size of pointed data\n"
|
"- using sizeof(pointer) instead of the size of pointed data\n"
|
||||||
"* look for 'sizeof sizeof ..'\n"
|
"- look for 'sizeof sizeof ..'\n"
|
||||||
"* look for calculations inside sizeof()\n"
|
"- look for calculations inside sizeof()\n"
|
||||||
"* look for suspicious calculations with sizeof()\n"
|
"- look for suspicious calculations with sizeof()\n"
|
||||||
"* using 'sizeof(void)' which is undefined\n";
|
"- using 'sizeof(void)' which is undefined\n";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -225,19 +225,19 @@ private:
|
||||||
|
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "Check for invalid usage of STL:\n"
|
return "Check for invalid usage of STL:\n"
|
||||||
"* out of bounds errors\n"
|
"- out of bounds errors\n"
|
||||||
"* misuse of iterators when iterating through a container\n"
|
"- misuse of iterators when iterating through a container\n"
|
||||||
"* mismatching containers in calls\n"
|
"- mismatching containers in calls\n"
|
||||||
"* dereferencing an erased iterator\n"
|
"- dereferencing an erased iterator\n"
|
||||||
"* for vectors: using iterator/pointer after push_back has been used\n"
|
"- for vectors: using iterator/pointer after push_back has been used\n"
|
||||||
"* optimisation: use empty() instead of size() to guarantee fast code\n"
|
"- optimisation: use empty() instead of size() to guarantee fast code\n"
|
||||||
"* suspicious condition when using find\n"
|
"- suspicious condition when using find\n"
|
||||||
"* redundant condition\n"
|
"- redundant condition\n"
|
||||||
"* common mistakes when using string::c_str()\n"
|
"- common mistakes when using string::c_str()\n"
|
||||||
"* using auto pointer (auto_ptr)\n"
|
"- using auto pointer (auto_ptr)\n"
|
||||||
"* useless calls of string and STL functions\n"
|
"- useless calls of string and STL functions\n"
|
||||||
"* dereferencing an invalid iterator\n"
|
"- dereferencing an invalid iterator\n"
|
||||||
"* reading from empty STL container\n";
|
"- reading from empty STL container\n";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -105,13 +105,12 @@ private:
|
||||||
|
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "Detect misusage of C-style strings:\n"
|
return "Detect misusage of C-style strings:\n"
|
||||||
|
"- overlapping buffers passed to sprintf as source and destination\n"
|
||||||
"* overlapping buffers passed to sprintf as source and destination\n"
|
"- incorrect length arguments for 'substr' and 'strncmp'\n"
|
||||||
"* incorrect length arguments for 'substr' and 'strncmp'\n"
|
"- suspicious condition (runtime comparison of string literals)\n"
|
||||||
"* suspicious condition (runtime comparison of string literals)\n"
|
"- suspicious condition (string literals as boolean)\n"
|
||||||
"* suspicious condition (string literals as boolean)\n"
|
"- suspicious comparison of a string literal with a char* variable\n"
|
||||||
"* suspicious comparison of a string literal with a char* variable\n"
|
"- suspicious comparison of '\\0' with a char* variable\n";
|
||||||
"* suspicious comparison of '\\0' with a char* variable\n";
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -89,9 +89,9 @@ private:
|
||||||
|
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "Type checks\n"
|
return "Type checks\n"
|
||||||
"* bitwise shift by too many bits (only enabled when --platform is used)\n"
|
"- bitwise shift by too many bits (only enabled when --platform is used)\n"
|
||||||
"* signed integer overflow (only enabled when --platform is used)\n"
|
"- signed integer overflow (only enabled when --platform is used)\n"
|
||||||
"* dangerous sign conversion, when signed value can be negative\n";
|
"- dangerous sign conversion, when signed value can be negative\n";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -108,8 +108,9 @@ private:
|
||||||
|
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "Uninitialized variables\n"
|
return "Uninitialized variables\n"
|
||||||
"* using uninitialized variables and data\n"
|
"- using uninitialized local variables\n"
|
||||||
"* using dead pointer\n";
|
"- using allocated data before it has been initialized\n"
|
||||||
|
"- using dead pointer\n";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
/// @}
|
/// @}
|
||||||
|
|
|
@ -101,11 +101,11 @@ private:
|
||||||
return "UnusedVar checks\n"
|
return "UnusedVar checks\n"
|
||||||
|
|
||||||
// style
|
// style
|
||||||
"* unused variable\n"
|
"- unused variable\n"
|
||||||
"* allocated but unused variable\n"
|
"- allocated but unused variable\n"
|
||||||
"* unred variable\n"
|
"- unred variable\n"
|
||||||
"* unassigned variable\n"
|
"- unassigned variable\n"
|
||||||
"* unused struct member\n";
|
"- unused struct member\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::map<const Type *,bool> isRecordTypeWithoutSideEffectsMap;
|
std::map<const Type *,bool> isRecordTypeWithoutSideEffectsMap;
|
||||||
|
|
|
@ -67,16 +67,16 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string myName() {
|
static std::string myName() {
|
||||||
return "CheckVaarg";
|
return "Vaarg";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string classInfo() const {
|
std::string classInfo() const {
|
||||||
return "Check for misusage of variable argument lists:\n"
|
return "Check for misusage of variable argument lists:\n"
|
||||||
"* Wrong parameter passed to va_start()\n"
|
"- Wrong parameter passed to va_start()\n"
|
||||||
"* Reference passed to va_start()\n"
|
"- Reference passed to va_start()\n"
|
||||||
"* Missing va_end()\n"
|
"- Missing va_end()\n"
|
||||||
"* Using va_list before it is opened\n"
|
"- Using va_list before it is opened\n"
|
||||||
"* Subsequent calls to va_start/va_copy()\n";
|
"- Subsequent calls to va_start/va_copy()\n";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue