diff --git a/lib/checkfunctions.cpp b/lib/checkfunctions.cpp index 37ebca53e..a521f14b4 100644 --- a/lib/checkfunctions.cpp +++ b/lib/checkfunctions.cpp @@ -637,6 +637,9 @@ void CheckFunctions::checkLibraryMatchFunctions() if (mSettings->library.podtype(tok->expressionString())) continue; + if (mSettings->library.getTypeCheck("unusedvar", functionName) != Library::TypeCheck::def) + continue; + const Token* start = tok; while (Token::Match(start->tokAt(-2), "%name% ::")) start = start->tokAt(-2); diff --git a/test/testfunctions.cpp b/test/testfunctions.cpp index ffacc665a..a79715dfd 100644 --- a/test/testfunctions.cpp +++ b/test/testfunctions.cpp @@ -1957,6 +1957,11 @@ private: "}\n"); ASSERT_EQUALS("", errout.str()); + check("auto f() {\n" + " return std::runtime_error(\"abc\");\n" + "}\n"); + ASSERT_EQUALS("", errout.str()); + settings = settings_old; }