diff --git a/lib/check.cpp b/lib/check.cpp index b13a3ea94e6..74de2d8689f 100644 --- a/lib/check.cpp +++ b/lib/check.cpp @@ -42,7 +42,11 @@ void Check::reportError(const ErrorLogger::ErrorMessage &errmsg) { std::cout << errmsg.toXML(true, 1) << std::endl; } -std::list &Check::instances() { - static std::list *_instances= new std::list; - return *_instances; - } + +#ifdef __SVR4 +std::list &Check::instances() +{ + static std::list *_instances= new std::list; + return *_instances; +} +#endif diff --git a/lib/check.h b/lib/check.h index acba45f346b..f928e269af8 100644 --- a/lib/check.h +++ b/lib/check.h @@ -53,7 +53,14 @@ class CPPCHECKLIB Check { } /** List of registered check classes. This is used by Cppcheck to run checks and generate documentation */ - static std::list &instances(); + #ifdef __SVR4 + static std::list &instances(); + #else + static std::list &instances() { + static std::list _instances; + return _instances; + } + #endif /** run checks, the token list is not simplified */ virtual void runChecks(const Tokenizer *, const Settings *, ErrorLogger *) {