diff --git a/lib/checkunusedfunctions.cpp b/lib/checkunusedfunctions.cpp index 87767c60b..1844928be 100644 --- a/lib/checkunusedfunctions.cpp +++ b/lib/checkunusedfunctions.cpp @@ -161,7 +161,7 @@ void CheckUnusedFunctions::check(ErrorLogger * const errorLogger) const FunctionUsage &func = it->second; if (func.usedOtherFile || func.filename.empty()) continue; - if (it->first == "main" || it->first == "WinMain" || it->first == "if") + if (it->first == "main" || it->first == "WinMain" || it->first == "_tmain" || it->first == "if") continue; if (! func.usedSameFile) { diff --git a/test/testunusedfunctions.cpp b/test/testunusedfunctions.cpp index 67a89241f..27c37b732 100644 --- a/test/testunusedfunctions.cpp +++ b/test/testunusedfunctions.cpp @@ -44,6 +44,7 @@ private: TEST_CASE(template1); TEST_CASE(throwIsNotAFunction); TEST_CASE(unusedError); + TEST_CASE(unusedMain); TEST_CASE(initializationIsNotAFunction); TEST_CASE(multipleFiles); // same function name in multiple files @@ -179,6 +180,18 @@ private: ASSERT_EQUALS("[test.cpp:1]: (style) The function 'foo' is never used\n", errout.str()); } + void unusedMain() + { + check("int main() { }\n"); + ASSERT_EQUALS("", errout.str()); + + check("int _tmain() { }\n"); + ASSERT_EQUALS("", errout.str()); + + check("int WinMain() { }\n"); + ASSERT_EQUALS("", errout.str()); + } + void initializationIsNotAFunction() { check("struct B: N::A {\n"