diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 35b307c9b..5ad791144 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -2276,7 +2276,7 @@ static bool setVarIdParseDeclaration(const Token **tok, const std::mapisName()) { - if (cpp && tok2->str() == "namespace") + if (cpp && Token::Match(tok2, "namespace|public|private|protected")) return false; if (tok2->str() == "struct" || tok2->str() == "union" || (cpp && (tok2->str() == "class" || tok2->str() == "typename"))) { hasstruct = true; diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index 0c1b46e1e..a3a27ba23 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -4934,6 +4934,11 @@ private: "std::vector vec{1, 2, 3};\n" "namespace n { int z; };\n" "int& j{i};\n")); + + // #6030 + ASSERT_EQUALS("\n\n##file 0\n" + "1: struct S3 : public S1 , public S2 { } ;\n", + tokenizeDebugListing("struct S3 : public S1, public S2 { };")); } void varidclass1() {