diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 285b32733..ace85df70 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -7985,7 +7985,7 @@ void Tokenizer::simplifyComma() // Handle "delete a, a = 0;" tok->str(";"); break; - } else if (Token::Match(tok2, "[;,{}()]")) { + } else if (Token::Match(tok2, "[:;,{}()]")) { break; } } diff --git a/test/testsimplifytokens.cpp b/test/testsimplifytokens.cpp index a4efc7851..6779e5693 100644 --- a/test/testsimplifytokens.cpp +++ b/test/testsimplifytokens.cpp @@ -2733,6 +2733,12 @@ private: "}\n"; ASSERT_EQUALS("void f ( ) { char buf [ BUFSIZ ] ; char * * p ; char * ptrs [ BUFSIZ ] ; char * * pp ; }", tok(code)); } + + { + // #4786 - don't replace , with ; in ".. : public B, C .." code + const char code[] = "template < class T = X > class A : public B , C { } ;"; + ASSERT_EQUALS(code, tok(code)); + } } void remove_comma() {