From 684981e4548733c9c28633c93a4cb418ea66e06a Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Fri, 19 Sep 2014 22:09:18 +0000 Subject: [PATCH] Converting object's error_category to a ManagedStatic to avoid static constructors and destructors. llvm-svn: 218160 --- llvm/lib/Object/Error.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Object/Error.cpp b/llvm/lib/Object/Error.cpp index 44667c247b15..d2daab72d589 100644 --- a/llvm/lib/Object/Error.cpp +++ b/llvm/lib/Object/Error.cpp @@ -13,6 +13,7 @@ #include "llvm/Object/Error.h" #include "llvm/Support/ErrorHandling.h" +#include "llvm/Support/ManagedStatic.h" using namespace llvm; using namespace object; @@ -48,7 +49,8 @@ std::string _object_error_category::message(int EV) const { "defined."); } +static ManagedStatic<_object_error_category> error_category; + const std::error_category &object::object_category() { - static _object_error_category o; - return o; + return *error_category; }