#1697 (false positive: The function can be const)
This commit is contained in:
parent
c31accc52a
commit
5dfbb38dc9
|
@ -145,15 +145,11 @@ CheckClass::Var *CheckClass::getVarList(const Token *tok1, bool withClasses, boo
|
||||||
|
|
||||||
// Pointer?
|
// Pointer?
|
||||||
else if (Token::Match(next, "%type% * %var% ;"))
|
else if (Token::Match(next, "%type% * %var% ;"))
|
||||||
{
|
|
||||||
varname = next->strAt(2);
|
varname = next->strAt(2);
|
||||||
}
|
|
||||||
|
|
||||||
// Pointer?
|
|
||||||
else if (Token::Match(next, "%type% %type% * %var% ;"))
|
else if (Token::Match(next, "%type% %type% * %var% ;"))
|
||||||
{
|
|
||||||
varname = next->strAt(3);
|
varname = next->strAt(3);
|
||||||
}
|
else if (Token::Match(next, "%type% :: %type% * %var% ;"))
|
||||||
|
varname = next->strAt(4);
|
||||||
|
|
||||||
// Array?
|
// Array?
|
||||||
else if (Token::Match(next, "%type% %var% [") && next->next()->str() != "operator")
|
else if (Token::Match(next, "%type% %var% [") && next->next()->str() != "operator")
|
||||||
|
@ -167,9 +163,9 @@ CheckClass::Var *CheckClass::getVarList(const Token *tok1, bool withClasses, boo
|
||||||
|
|
||||||
// Pointer array?
|
// Pointer array?
|
||||||
else if (Token::Match(next, "%type% * %var% ["))
|
else if (Token::Match(next, "%type% * %var% ["))
|
||||||
{
|
|
||||||
varname = next->strAt(2);
|
varname = next->strAt(2);
|
||||||
}
|
else if (Token::Match(next, "%type% :: %type% * %var% ["))
|
||||||
|
varname = next->strAt(4);
|
||||||
|
|
||||||
// std::string..
|
// std::string..
|
||||||
else if (withClasses && Token::Match(next, "%type% :: %type% %var% ;"))
|
else if (withClasses && Token::Match(next, "%type% :: %type% %var% ;"))
|
||||||
|
|
|
@ -117,6 +117,7 @@ private:
|
||||||
TEST_CASE(const19); // ticket #1612
|
TEST_CASE(const19); // ticket #1612
|
||||||
TEST_CASE(const20); // ticket #1602
|
TEST_CASE(const20); // ticket #1602
|
||||||
TEST_CASE(const21); // ticket #1683
|
TEST_CASE(const21); // ticket #1683
|
||||||
|
TEST_CASE(const22);
|
||||||
TEST_CASE(constoperator1); // operator< can often be const
|
TEST_CASE(constoperator1); // operator< can often be const
|
||||||
TEST_CASE(constoperator2); // operator<<
|
TEST_CASE(constoperator2); // operator<<
|
||||||
TEST_CASE(constincdec); // increment/decrement => non-const
|
TEST_CASE(constincdec); // increment/decrement => non-const
|
||||||
|
@ -3309,6 +3310,27 @@ private:
|
||||||
ASSERT_EQUALS("", errout.str());
|
ASSERT_EQUALS("", errout.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void const22()
|
||||||
|
{
|
||||||
|
checkConst("class A\n"
|
||||||
|
"{\n"
|
||||||
|
"private:\n"
|
||||||
|
" B::C * v1;\n"
|
||||||
|
"public:\n"
|
||||||
|
" void f1() { v1 = 0; }\n"
|
||||||
|
"};\n");
|
||||||
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
|
||||||
|
checkConst("class A\n"
|
||||||
|
"{\n"
|
||||||
|
"private:\n"
|
||||||
|
" B::C * v1[0];\n"
|
||||||
|
"public:\n"
|
||||||
|
" void f1() { v1[0] = 0; }\n"
|
||||||
|
"};\n");
|
||||||
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
}
|
||||||
|
|
||||||
// increment/decrement => not const
|
// increment/decrement => not const
|
||||||
void constincdec()
|
void constincdec()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue