From 4659745106b2cf24165a845ae8dd17291f0d8190 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Mon, 6 May 2013 16:56:34 +0200 Subject: [PATCH] Fixed #4786 (segfault with one LibreOffice file) --- lib/tokenize.cpp | 2 +- test/testsimplifytokens.cpp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) 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() {