fix #2403 (simplifyTypedef: array of function pointers) Internal error message
This commit is contained in:
parent
458fc7454e
commit
d1f7a8aca4
|
@ -886,6 +886,9 @@ static Token *processFunc(Token *tok2, bool inOperator)
|
||||||
tok2 = tok2->tokAt(4)->link()->next();
|
tok2 = tok2->tokAt(4)->link()->next();
|
||||||
else if (Token::Match(tok2->next(), "* ( * %type% ("))
|
else if (Token::Match(tok2->next(), "* ( * %type% ("))
|
||||||
tok2 = tok2->tokAt(5)->link()->next();
|
tok2 = tok2->tokAt(5)->link()->next();
|
||||||
|
else if (Token::Match(tok2->next(), "* [") &&
|
||||||
|
Token::simpleMatch(tok2->tokAt(2)->link(), "] ;"))
|
||||||
|
tok2 = tok2->next();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (tok2->next()->str() == "(")
|
if (tok2->next()->str() == "(")
|
||||||
|
|
|
@ -241,6 +241,7 @@ private:
|
||||||
TEST_CASE(simplifyTypedef79); // ticket #2348
|
TEST_CASE(simplifyTypedef79); // ticket #2348
|
||||||
TEST_CASE(simplifyTypedef80); // ticket #2587
|
TEST_CASE(simplifyTypedef80); // ticket #2587
|
||||||
TEST_CASE(simplifyTypedef81); // ticket #2603
|
TEST_CASE(simplifyTypedef81); // ticket #2603
|
||||||
|
TEST_CASE(simplifyTypedef82); // ticket #2403
|
||||||
|
|
||||||
TEST_CASE(simplifyTypedefFunction1);
|
TEST_CASE(simplifyTypedefFunction1);
|
||||||
TEST_CASE(simplifyTypedefFunction2); // ticket #1685
|
TEST_CASE(simplifyTypedefFunction2); // ticket #1685
|
||||||
|
@ -4931,6 +4932,24 @@ private:
|
||||||
ASSERT_EQUALS("[test.cpp:1]: (error) syntax error\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:1]: (error) syntax error\n", errout.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void simplifyTypedef82() // ticket #2403
|
||||||
|
{
|
||||||
|
checkSimplifyTypedef("class A {\n"
|
||||||
|
"public:\n"
|
||||||
|
" typedef int F(int idx);\n"
|
||||||
|
"};\n"
|
||||||
|
"class B {\n"
|
||||||
|
"public:\n"
|
||||||
|
" A::F ** f;\n"
|
||||||
|
"};\n"
|
||||||
|
"int main()\n"
|
||||||
|
"{\n"
|
||||||
|
" B * b = new B;\n"
|
||||||
|
" b->f = new A::F * [ 10 ];\n"
|
||||||
|
"}\n");
|
||||||
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
}
|
||||||
|
|
||||||
void simplifyTypedefFunction1()
|
void simplifyTypedefFunction1()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue