diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 653662957..9970ca067 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -2223,7 +2223,7 @@ void Tokenizer::simplifyLabelsCaseDefault() syntaxError(tok); } } else if (Token::Match(tok, "[;{}] %name% : !!;")) { - if (!cpp || !Token::Match(tok->next(), "class|struct")) { + if (!cpp || !Token::Match(tok->next(), "class|struct|enum")) { tok = tok->tokAt(2); tok->insertToken(";"); } diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index 48adab4b9..b3935c77d 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -4761,6 +4761,9 @@ private: //ticket #8345 ASSERT_EQUALS("void foo ( ) { switch ( 0 ) { case 0 : ; default : ; } }", tokenizeAndStringify("void foo () { switch(0) case 0 : default : ; }")); + //ticket #8477 + ASSERT_EQUALS("void foo ( ) { enum Anonymous0 : int { Six = 6 } ; return Six ; }", + tokenizeAndStringify("void foo () { enum : int { Six = 6 } ; return Six ; }")); } void simplifyPointerToStandardType() {