Fixed #1252 (Internal error in Cppcheck while parsing struct)
This commit is contained in:
parent
7b6bf80057
commit
5e8e4fd3e9
|
@ -663,10 +663,12 @@ void Tokenizer::simplifyTypedef()
|
||||||
tok2 = tok2->next();
|
tok2 = tok2->next();
|
||||||
tok2->insertToken("[");
|
tok2->insertToken("[");
|
||||||
tok2 = tok2->next();
|
tok2 = tok2->next();
|
||||||
|
Token *tok3 = tok2;
|
||||||
tok2->insertToken(num->strAt(0));
|
tok2->insertToken(num->strAt(0));
|
||||||
tok2 = tok2->next();
|
tok2 = tok2->next();
|
||||||
tok2->insertToken("]");
|
tok2->insertToken("]");
|
||||||
tok2 = tok2->next();
|
tok2 = tok2->next();
|
||||||
|
Token::createMutualLinks(tok2, tok3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -150,6 +150,7 @@ private:
|
||||||
TEST_CASE(simplifyTypedef13);
|
TEST_CASE(simplifyTypedef13);
|
||||||
TEST_CASE(simplifyTypedef14);
|
TEST_CASE(simplifyTypedef14);
|
||||||
TEST_CASE(simplifyTypedef15);
|
TEST_CASE(simplifyTypedef15);
|
||||||
|
TEST_CASE(simplifyTypedef16);
|
||||||
TEST_CASE(reverseArraySyntax)
|
TEST_CASE(reverseArraySyntax)
|
||||||
TEST_CASE(simplify_numeric_condition)
|
TEST_CASE(simplify_numeric_condition)
|
||||||
|
|
||||||
|
@ -2490,6 +2491,27 @@ private:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void simplifyTypedef16()
|
||||||
|
{
|
||||||
|
// ticket # 1252
|
||||||
|
const char code[] = "typedef char MOT8;\n"
|
||||||
|
"typedef MOT8 CHFOO[4096];\n"
|
||||||
|
"typedef struct {\n"
|
||||||
|
" CHFOO freem;\n"
|
||||||
|
"} STRFOO;";
|
||||||
|
|
||||||
|
Tokenizer tokenizer;
|
||||||
|
std::istringstream istr(code);
|
||||||
|
tokenizer.tokenize(istr, "test.cpp");
|
||||||
|
|
||||||
|
// Clear the error buffer..
|
||||||
|
errout.str("");
|
||||||
|
|
||||||
|
tokenizer.simplifyTokenList();
|
||||||
|
|
||||||
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
}
|
||||||
|
|
||||||
void reverseArraySyntax()
|
void reverseArraySyntax()
|
||||||
{
|
{
|
||||||
ASSERT_EQUALS("a [ 13 ]", tok("13[a]"));
|
ASSERT_EQUALS("a [ 13 ]", tok("13[a]"));
|
||||||
|
|
Loading…
Reference in New Issue