Fixed #2620 (Tokenizer::setVarId : wrong handling of member function parameters)
This commit is contained in:
parent
bf2362d558
commit
0b8581e717
|
@ -3603,6 +3603,10 @@ void Tokenizer::setVarId()
|
||||||
--indentlevel;
|
--indentlevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// skip parantheses..
|
||||||
|
else if (tok2->str() == "(")
|
||||||
|
tok2 = tok2->link();
|
||||||
|
|
||||||
// Found a member variable..
|
// Found a member variable..
|
||||||
else if (indentlevel == 1 && tok2->varId() > 0)
|
else if (indentlevel == 1 && tok2->varId() > 0)
|
||||||
varlist[tok2->str()] = tok2->varId();
|
varlist[tok2->str()] = tok2->varId();
|
||||||
|
|
|
@ -190,6 +190,7 @@ private:
|
||||||
TEST_CASE(varidclass6);
|
TEST_CASE(varidclass6);
|
||||||
TEST_CASE(varidclass7);
|
TEST_CASE(varidclass7);
|
||||||
TEST_CASE(varidclass8);
|
TEST_CASE(varidclass8);
|
||||||
|
TEST_CASE(varidclass9);
|
||||||
|
|
||||||
TEST_CASE(file1);
|
TEST_CASE(file1);
|
||||||
TEST_CASE(file2);
|
TEST_CASE(file2);
|
||||||
|
@ -3363,6 +3364,32 @@ private:
|
||||||
ASSERT_EQUALS(expected, tokenizeDebugListing(code));
|
ASSERT_EQUALS(expected, tokenizeDebugListing(code));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void varidclass9()
|
||||||
|
{
|
||||||
|
const std::string code("typedef char Str[10];"
|
||||||
|
"class A {\n"
|
||||||
|
"public:\n"
|
||||||
|
" void f(Str &cl);\n"
|
||||||
|
" void g(Str cl);\n"
|
||||||
|
"}\n"
|
||||||
|
"void Fred::f(Str &cl) {\n"
|
||||||
|
" sizeof(cl);\n"
|
||||||
|
"}");
|
||||||
|
|
||||||
|
const std::string expected("\n\n"
|
||||||
|
"##file 0\n"
|
||||||
|
"1: ; class A {\n"
|
||||||
|
"2: public:\n"
|
||||||
|
"3: void f ( char ( & cl ) [ 10 ] ) ;\n"
|
||||||
|
"4: void g ( char cl@1 [ 10 ] ) ;\n"
|
||||||
|
"5: }\n"
|
||||||
|
"6: void Fred :: f ( char ( & cl ) [ 10 ] ) {\n"
|
||||||
|
"7: sizeof ( cl ) ;\n"
|
||||||
|
"8: }\n");
|
||||||
|
|
||||||
|
ASSERT_EQUALS(expected, tokenizeDebugListing(code));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void file1()
|
void file1()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue