Resolve CID 1214637.
This commit is contained in:
parent
1cb37e9870
commit
a4d597451b
|
@ -1190,7 +1190,13 @@ void CheckClass::operatorEqRetRefThis()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CheckClass::checkReturnPtrThis(const Scope *scope, const Function *func, const Token *tok, const Token *last, std::set<const Function*>* analyzedFunctions)
|
void CheckClass::checkReturnPtrThis(const Scope *scope, const Function *func, const Token *tok, const Token *last)
|
||||||
|
{
|
||||||
|
std::set<const Function*> analyzedFunctions;
|
||||||
|
checkReturnPtrThis(scope, func, tok, last, analyzedFunctions);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CheckClass::checkReturnPtrThis(const Scope *scope, const Function *func, const Token *tok, const Token *last, std::set<const Function*>& analyzedFunctions)
|
||||||
{
|
{
|
||||||
bool foundReturn = false;
|
bool foundReturn = false;
|
||||||
|
|
||||||
|
@ -1219,11 +1225,8 @@ void CheckClass::checkReturnPtrThis(const Scope *scope, const Function *func, co
|
||||||
if (!it->isConst) {
|
if (!it->isConst) {
|
||||||
/** @todo make sure argument types match */
|
/** @todo make sure argument types match */
|
||||||
// avoid endless recursions
|
// avoid endless recursions
|
||||||
if (!analyzedFunctions || analyzedFunctions->find(&*it)==analyzedFunctions->end()) {
|
if (analyzedFunctions.find(&*it) == analyzedFunctions.end()) {
|
||||||
std::set<const Function*> local_analyzedFunctions;
|
analyzedFunctions.insert(&*it);
|
||||||
if (!analyzedFunctions)
|
|
||||||
analyzedFunctions=&local_analyzedFunctions;
|
|
||||||
analyzedFunctions->insert(&*it);
|
|
||||||
checkReturnPtrThis(scope, &*it, it->arg->link()->next(), it->arg->link()->next()->link(),
|
checkReturnPtrThis(scope, &*it, it->arg->link()->next(), it->arg->link()->next()->link(),
|
||||||
analyzedFunctions);
|
analyzedFunctions);
|
||||||
}
|
}
|
||||||
|
|
|
@ -201,8 +201,9 @@ private:
|
||||||
"* Duplicated inherited data members\n";
|
"* Duplicated inherited data members\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// operatorEqRetRefThis helper function
|
// operatorEqRetRefThis helper functions
|
||||||
void checkReturnPtrThis(const Scope *scope, const Function *func, const Token *tok, const Token *last, std::set<const Function*>* analyzedFunctions=nullptr);
|
void checkReturnPtrThis(const Scope *scope, const Function *func, const Token *tok, const Token *last);
|
||||||
|
void checkReturnPtrThis(const Scope *scope, const Function *func, const Token *tok, const Token *last, std::set<const Function*>& analyzedFunctions);
|
||||||
|
|
||||||
// operatorEqToSelf helper functions
|
// operatorEqToSelf helper functions
|
||||||
bool hasAllocation(const Function *func, const Scope* scope) const;
|
bool hasAllocation(const Function *func, const Scope* scope) const;
|
||||||
|
|
Loading…
Reference in New Issue