diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index d6af72194..ca2967603 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -1788,6 +1788,12 @@ void Tokenizer::simplifySizeof() void Tokenizer::simplifyTokenList() { + for (Token *tok = _tokens; tok; tok = tok->next()) + { + if (Token::simpleMatch(tok, "* const")) + tok->deleteNext(); + } + simplifyNamespaces(); simplifyGoto(); diff --git a/test/testsimplifytokens.cpp b/test/testsimplifytokens.cpp index 5b790b150..760ebec3d 100644 --- a/test/testsimplifytokens.cpp +++ b/test/testsimplifytokens.cpp @@ -135,6 +135,8 @@ private: TEST_CASE(simplify_numeric_condition); TEST_CASE(pointeralias); + + TEST_CASE(reduceConstness); } std::string tok(const char code[], bool simplify = true) @@ -2148,6 +2150,12 @@ private: ASSERT_EQUALS(expected, tok(code)); } } + + + void reduceConstness() + { + ASSERT_EQUALS("char * p ;", tok("char * const p;")); + } }; REGISTER_TEST(TestSimplifyTokens)