Fixed #2604 (Segmentation fault of cppcheck ( sizeof <= A ))
This commit is contained in:
parent
c3fe6f80da
commit
daf0e7c37d
|
@ -3918,10 +3918,14 @@ void Tokenizer::simplifySizeof()
|
|||
--parlevel;
|
||||
if (Token::Match(tempToken, "%var%"))
|
||||
{
|
||||
while (tempToken->next()->str() == "[")
|
||||
while (tempToken && tempToken->next() && tempToken->next()->str() == "[")
|
||||
{
|
||||
tempToken = tempToken->next()->link();
|
||||
}
|
||||
if (!tempToken || !tempToken->next())
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (tempToken->next()->str() == ".")
|
||||
{
|
||||
|
|
|
@ -85,6 +85,7 @@ private:
|
|||
TEST_CASE(sizeof20); // #2024 - sizeof a)
|
||||
TEST_CASE(sizeof21); // #2232 - sizeof...(Args)
|
||||
TEST_CASE(sizeof22); // #2599
|
||||
TEST_CASE(sizeof23); // #2604
|
||||
TEST_CASE(sizeofsizeof);
|
||||
TEST_CASE(casting);
|
||||
|
||||
|
@ -1433,6 +1434,15 @@ private:
|
|||
tok(code);
|
||||
}
|
||||
|
||||
void sizeof23()
|
||||
{
|
||||
// ticket #2604 segmentation fault
|
||||
const char code[] = "sizeof <= A\n";
|
||||
|
||||
// don't segfault
|
||||
tok(code);
|
||||
}
|
||||
|
||||
|
||||
void sizeofsizeof()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue