Fix #2579 (segmentation fault of cppcheck)
This commit is contained in:
parent
ad22aebf8c
commit
c03ace7378
|
@ -8748,7 +8748,7 @@ void Tokenizer::simplifyStructDecl()
|
||||||
}
|
}
|
||||||
|
|
||||||
// unnamed anonymous struct/union so remove it
|
// unnamed anonymous struct/union so remove it
|
||||||
else if (tok->next()->str() == ";")
|
else if (tok->next() && tok->next()->str() == ";")
|
||||||
{
|
{
|
||||||
if (tok1->str() == "union")
|
if (tok1->str() == "union")
|
||||||
{
|
{
|
||||||
|
|
|
@ -304,7 +304,8 @@ private:
|
||||||
TEST_CASE(initstruct);
|
TEST_CASE(initstruct);
|
||||||
|
|
||||||
// struct ABC { } abc; => struct ABC { }; ABC abc;
|
// struct ABC { } abc; => struct ABC { }; ABC abc;
|
||||||
TEST_CASE(simplifyStructDecl);
|
TEST_CASE(simplifyStructDecl1);
|
||||||
|
TEST_CASE(simplifyStructDecl2); // ticket #2579
|
||||||
|
|
||||||
// register int var; => int var;
|
// register int var; => int var;
|
||||||
// inline int foo() {} => int foo() {}
|
// inline int foo() {} => int foo() {}
|
||||||
|
@ -6222,7 +6223,7 @@ private:
|
||||||
tok("; struct A a = { .buf = {0} };"));
|
tok("; struct A a = { .buf = {0} };"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void simplifyStructDecl()
|
void simplifyStructDecl1()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
const char code[] = "struct ABC { } abc;";
|
const char code[] = "struct ABC { } abc;";
|
||||||
|
@ -6365,6 +6366,13 @@ private:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void simplifyStructDecl2() // ticket #2479 (segmentation fault)
|
||||||
|
{
|
||||||
|
const char code[] = "struct { char c; }";
|
||||||
|
const char expected[] = "struct { char c ; }";
|
||||||
|
ASSERT_EQUALS(expected, tok(code, false));
|
||||||
|
}
|
||||||
|
|
||||||
void removeUnwantedKeywords()
|
void removeUnwantedKeywords()
|
||||||
{
|
{
|
||||||
ASSERT_EQUALS("int var ;", tok("register int var ;", true));
|
ASSERT_EQUALS("int var ;", tok("register int var ;", true));
|
||||||
|
|
Loading…
Reference in New Issue