diff --git a/lib/symboldatabase.cpp b/lib/symboldatabase.cpp index 95890c114..4655582dd 100644 --- a/lib/symboldatabase.cpp +++ b/lib/symboldatabase.cpp @@ -1210,7 +1210,7 @@ void SymbolDatabase::createSymbolDatabaseSetFunctionPointers(bool firstPass) for (std::list::iterator it = scopeList.begin(); it != scopeList.end(); ++it) { for (std::list::const_iterator func = it->functionList.begin(); func != it->functionList.end(); ++func) { // look for initializer list - if (func->type == Function::eConstructor && func->functionScope && func->functionScope->functionOf && func->arg) { + if (func->isConstructor() && func->functionScope && func->functionScope->functionOf && func->arg) { const Token * tok = func->arg->link()->next(); if (tok->str() == "noexcept") { const Token * closingParenTok = tok->linkAt(1); diff --git a/test/testclass.cpp b/test/testclass.cpp index 6a27040a3..ffdc0c581 100644 --- a/test/testclass.cpp +++ b/test/testclass.cpp @@ -6199,6 +6199,15 @@ private: " }\n" "};"); ASSERT_EQUALS("", errout.str()); + + checkInitializationListUsage("class Bar {\n" // #8466 + "public:\n" + " explicit Bar(const Bar &bar) : Bar{bar.s} {}\n" + " explicit Bar(const char s) : s{s} {}\n" + "private:\n" + " char s;\n" + "};"); + ASSERT_EQUALS("", errout.str()); }