Fixed #1290 (1.40: Internal error)
This commit is contained in:
parent
2e707974d0
commit
d4b13eee9f
|
@ -3210,6 +3210,9 @@ void Tokenizer::simplifyFunctionParameters()
|
||||||
{
|
{
|
||||||
// We have found old style function, now we need to change it
|
// We have found old style function, now we need to change it
|
||||||
|
|
||||||
|
// backup pointer to the '(' token
|
||||||
|
Token * const tok1 = tok->next();
|
||||||
|
|
||||||
// Get list of argument names
|
// Get list of argument names
|
||||||
std::map<std::string, Token*> argumentNames;
|
std::map<std::string, Token*> argumentNames;
|
||||||
bool bailOut = false;
|
bool bailOut = false;
|
||||||
|
@ -3239,6 +3242,9 @@ void Tokenizer::simplifyFunctionParameters()
|
||||||
|
|
||||||
if (bailOut)
|
if (bailOut)
|
||||||
{
|
{
|
||||||
|
tok = tok1->link();
|
||||||
|
if (!tok)
|
||||||
|
return;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,9 @@ private:
|
||||||
TEST_CASE(tokenize2);
|
TEST_CASE(tokenize2);
|
||||||
TEST_CASE(tokenize3);
|
TEST_CASE(tokenize3);
|
||||||
|
|
||||||
|
// don't freak out when the syntax is wrong
|
||||||
|
TEST_CASE(wrong_syntax);
|
||||||
|
|
||||||
TEST_CASE(minus);
|
TEST_CASE(minus);
|
||||||
|
|
||||||
TEST_CASE(longtok);
|
TEST_CASE(longtok);
|
||||||
|
@ -255,6 +258,14 @@ private:
|
||||||
ASSERT_EQUALS("", errout.str());
|
ASSERT_EQUALS("", errout.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wrong_syntax()
|
||||||
|
{
|
||||||
|
errout.str("");
|
||||||
|
const std::string code("TR(kvmpio, PROTO(int rw), ARGS(rw), TP_(aa->rw;))");
|
||||||
|
ASSERT_EQUALS("TR ( kvmpio , PROTO ( int rw ) , ARGS ( rw ) , TP_ ( aa . rw ; ) )", tokenizeAndStringify(code.c_str(), true));
|
||||||
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
}
|
||||||
|
|
||||||
void minus()
|
void minus()
|
||||||
{
|
{
|
||||||
ASSERT_EQUALS("i = -12", tokenizeAndStringify("i = -12"));
|
ASSERT_EQUALS("i = -12", tokenizeAndStringify("i = -12"));
|
||||||
|
|
Loading…
Reference in New Issue