Bailout in private function usage checking for operators (#5059).
This commit is contained in:
parent
8d5be8c4a4
commit
77c17100ec
|
@ -873,7 +873,7 @@ void CheckClass::privateFunctions()
|
|||
std::list<const Function*> FuncList;
|
||||
for (std::list<Function>::const_iterator func = scope->functionList.begin(); func != scope->functionList.end(); ++func) {
|
||||
// Get private functions..
|
||||
if (func->type == Function::eFunction && func->access == Private)
|
||||
if (func->type == Function::eFunction && func->access == Private && !func->isOperator) // TODO: There are smarter ways to check private operator usage
|
||||
FuncList.push_back(&*func);
|
||||
}
|
||||
|
||||
|
|
|
@ -579,6 +579,19 @@ private:
|
|||
" }\n"
|
||||
"};");
|
||||
ASSERT_EQUALS("[test.cpp:8]: (style) Unused private function: 'Fred::startListening'\n", errout.str());
|
||||
|
||||
// #5059
|
||||
check("class Fred {\n"
|
||||
" void* operator new(size_t obj_size, size_t buf_size) {}\n"
|
||||
"};");
|
||||
TODO_ASSERT_EQUALS("[test.cpp:2]: (style) Unused private function: 'Fred::operatornew'\n", "", errout.str()); // No message for operators - we currently cannot check their usage
|
||||
|
||||
check("class Fred {\n"
|
||||
" void* operator new(size_t obj_size, size_t buf_size) {}\n"
|
||||
"public:\n"
|
||||
" void* foo() { return new(size) Fred(); }\n"
|
||||
"};");
|
||||
ASSERT_EQUALS("", errout.str());
|
||||
}
|
||||
|
||||
void testDoesNotIdentifyMethodAsFirstFunctionArgument() {
|
||||
|
|
Loading…
Reference in New Issue