Fixed #1506 (typedef name hiding check combined with forward declaration leeds to false positive)
This commit is contained in:
parent
12c45a1aba
commit
b3856cbc5e
|
@ -494,7 +494,7 @@ bool Tokenizer::duplicateTypedef(Token **tokPtr, const Token *name)
|
|||
// look backwards
|
||||
if (Token::Match(tok->previous(), "typedef|}|>") ||
|
||||
(Token::Match(tok->previous(), "%type%") &&
|
||||
(!Token::Match(tok->previous(), "return|new|const|friend") &&
|
||||
(!Token::Match(tok->previous(), "return|new|const|friend|struct") &&
|
||||
!Token::Match(tok->tokAt(-2), "friend class"))))
|
||||
{
|
||||
// scan backwards for the end of the previous statement
|
||||
|
|
|
@ -180,6 +180,7 @@ private:
|
|||
TEST_CASE(simplifyTypedef39);
|
||||
TEST_CASE(simplifyTypedef40);
|
||||
TEST_CASE(simplifyTypedef41); // ticket #1488
|
||||
TEST_CASE(simplifyTypedef42); // ticket #1506
|
||||
|
||||
TEST_CASE(reverseArraySyntax)
|
||||
TEST_CASE(simplify_numeric_condition)
|
||||
|
@ -3531,6 +3532,14 @@ private:
|
|||
ASSERT_EQUALS("", errout.str());
|
||||
}
|
||||
|
||||
void simplifyTypedef42()
|
||||
{
|
||||
// ticket #1506
|
||||
checkSimplifyTypedef("typedef struct A { } A;\n"
|
||||
"struct A;");
|
||||
ASSERT_EQUALS("", errout.str());
|
||||
}
|
||||
|
||||
void reverseArraySyntax()
|
||||
{
|
||||
ASSERT_EQUALS("a [ 13 ]", tok("13[a]"));
|
||||
|
|
Loading…
Reference in New Issue