From 1799e4a57583ca83baac9bd760294bc644a3c575 Mon Sep 17 00:00:00 2001 From: Robert Reif Date: Tue, 6 Jul 2010 08:26:30 +0200 Subject: [PATCH] Fixed #1827 (### Internal error in Cppcheck. Please report it.) --- lib/tokenize.cpp | 7 ++++++- test/testsimplifytokens.cpp | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 9330bd506..992a3934b 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -1477,11 +1477,16 @@ void Tokenizer::simplifyTypedef() // skip over name if (tok2->next()->str() != ")") { - tok2 = tok2->next(); + if (tok2->next()->str() != "(") + tok2 = tok2->next(); // check for function and skip over args if (tok2->next()->str() == "(") tok2 = tok2->next()->link(); + + // check for array + if (tok2->next()->str() == "[") + tok2 = tok2->next()->link(); } else { diff --git a/test/testsimplifytokens.cpp b/test/testsimplifytokens.cpp index 759daad78..03bc782ec 100644 --- a/test/testsimplifytokens.cpp +++ b/test/testsimplifytokens.cpp @@ -4128,6 +4128,7 @@ private: "typedef char (& type3)[x];\n" "typedef char (& type4)[x + 2];\n" "type1 t1;\n" + "type1 (*tp1)[2];\n" "type2 t2;\n" "type3 t3;\n" "type4 t4;"; @@ -4135,6 +4136,7 @@ private: // The expected result.. const std::string expected("; ; ; ; " "char ( * t1 ) [ 10 ] ; " + "char ( * ( * tp1 ) [ 2 ] ) [ 10 ] ; " "char ( & t2 ) [ 10 ] ; " "char ( & t3 ) [ x ] ; " "char ( & t4 ) [ x + 2 ] ;");