Index: lib/Object/Error.cpp =================================================================== --- lib/Object/Error.cpp +++ lib/Object/Error.cpp @@ -13,7 +13,7 @@ #include "llvm/Object/Error.h" #include "llvm/Support/ErrorHandling.h" -#include "llvm/Support/ManagedStatic.h" +#include using namespace llvm; using namespace object; @@ -55,8 +55,10 @@ "defined."); } -static ManagedStatic<_object_error_category> error_category; - const std::error_category &object::object_category() { - return *error_category; + static _object_error_category *Ret; + static std::once_flag Flag; + if (Ret == nullptr) + std::call_once(Flag, []() { Ret = new _object_error_category(); }); + return *Ret; }