fix #2637 (segmentation fault of cppcheck ( {} const const ))
This commit is contained in:
parent
ba0b3e6451
commit
47531dd99c
|
@ -1467,6 +1467,9 @@ void Scope::getVariableList()
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
tok = checkVariable(tok, varaccess);
|
tok = checkVariable(tok, varaccess);
|
||||||
|
|
||||||
|
if (!tok)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1515,7 +1518,7 @@ const Token *Scope::checkVariable(const Token *tok, AccessControl varaccess)
|
||||||
|
|
||||||
bool isArray = false;
|
bool isArray = false;
|
||||||
|
|
||||||
if (isVariableDeclaration(tok, vartok, typetok, isArray))
|
if (tok && isVariableDeclaration(tok, vartok, typetok, isArray))
|
||||||
{
|
{
|
||||||
isClass = (!typetok->isStandardType() && vartok->previous()->str() != "*");
|
isClass = (!typetok->isStandardType() && vartok->previous()->str() != "*");
|
||||||
tok = vartok->next();
|
tok = vartok->next();
|
||||||
|
|
|
@ -196,6 +196,7 @@ private:
|
||||||
TEST_CASE(symboldatabase13); // ticket #2577
|
TEST_CASE(symboldatabase13); // ticket #2577
|
||||||
TEST_CASE(symboldatabase14); // ticket #2589
|
TEST_CASE(symboldatabase14); // ticket #2589
|
||||||
TEST_CASE(symboldatabase15); // ticket #2591
|
TEST_CASE(symboldatabase15); // ticket #2591
|
||||||
|
TEST_CASE(symboldatabase16); // ticket #2637
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check the operator Equal
|
// Check the operator Equal
|
||||||
|
@ -5791,6 +5792,14 @@ private:
|
||||||
ASSERT_EQUALS("", errout.str());
|
ASSERT_EQUALS("", errout.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void symboldatabase16()
|
||||||
|
{
|
||||||
|
// ticket #2637 - segmentation fault
|
||||||
|
checkConst("{} const const\n");
|
||||||
|
|
||||||
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
REGISTER_TEST(TestClass)
|
REGISTER_TEST(TestClass)
|
||||||
|
|
Loading…
Reference in New Issue