Fix ticket #258 (segmentation fault)
http://apps.sourceforge.net/trac/cppcheck/ticket/258
This commit is contained in:
parent
ca8f25fced
commit
14eff64194
|
@ -452,9 +452,7 @@ void Tokenizer::tokenize(std::istream &code, const char FileName[])
|
||||||
// Remove "volatile"
|
// Remove "volatile"
|
||||||
while (Token::simpleMatch(_tokens, "volatile"))
|
while (Token::simpleMatch(_tokens, "volatile"))
|
||||||
{
|
{
|
||||||
Token *tok = _tokens;
|
_tokens->deleteThis();
|
||||||
_tokens = _tokens->next();
|
|
||||||
delete tok;
|
|
||||||
}
|
}
|
||||||
for (Token *tok = _tokens; tok; tok = tok->next())
|
for (Token *tok = _tokens; tok; tok = tok->next())
|
||||||
{
|
{
|
||||||
|
|
|
@ -130,6 +130,7 @@ private:
|
||||||
|
|
||||||
TEST_CASE(vardecl1);
|
TEST_CASE(vardecl1);
|
||||||
TEST_CASE(vardecl2);
|
TEST_CASE(vardecl2);
|
||||||
|
TEST_CASE(volatile_variables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1413,6 +1414,17 @@ private:
|
||||||
|
|
||||||
ASSERT_EQUALS("void foo ( a , b ) unsigned int a ; unsigned int b ; { }", actual);
|
ASSERT_EQUALS("void foo ( a , b ) unsigned int a ; unsigned int b ; { }", actual);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void volatile_variables()
|
||||||
|
{
|
||||||
|
const char code[] = "volatile int a=0;\n"
|
||||||
|
"volatile int b=0;\n"
|
||||||
|
"volatile int c=0;\n";
|
||||||
|
|
||||||
|
const std::string actual(tokenizeAndStringify(code));
|
||||||
|
|
||||||
|
ASSERT_EQUALS("int a ; a = 0 ;\nint b ; b = 0 ;\nint c ; c = 0 ;", actual);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
REGISTER_TEST(TestTokenizer)
|
REGISTER_TEST(TestTokenizer)
|
||||||
|
|
Loading…
Reference in New Issue