From: Reid Spencer Date: Tue, 14 Dec 2004 03:55:21 +0000 (+0000) Subject: Revert the last patch as it causes a static destruction ordering problem. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f6e5a25f3a57a225c8545e453045f3ae220e3286;p=oota-llvm.git Revert the last patch as it causes a static destruction ordering problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18925 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Support/Timer.cpp b/lib/Support/Timer.cpp index 4b88be2b094..ff3fd6fefe0 100644 --- a/lib/Support/Timer.cpp +++ b/lib/Support/Timer.cpp @@ -33,10 +33,12 @@ namespace llvm { extern std::ostream *GetLibSupportInfoOutputFile(); } // problem is that a Statistic<> object gets destroyed, which ends up calling // 'GetLibSupportInfoOutputFile()' (below), which calls this function. // LibSupportInfoOutputFilename used to be a global variable, but sometimes it -// would get destroyed before the Statistic, causing havoc to ensue. +// would get destroyed before the Statistic, causing havoc to ensue. We "fix" +// this by creating the string the first time it is needed and never destroying +// it. static std::string &getLibSupportInfoOutputFilename() { - static std::string LibSupportInfoOutputFilename; - return LibSupportInfoOutputFilename; + static std::string *LibSupportInfoOutputFilename = new std::string(); + return *LibSupportInfoOutputFilename; } namespace {