From f6e5a25f3a57a225c8545e453045f3ae220e3286 Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Tue, 14 Dec 2004 03:55:21 +0000 Subject: 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 --- lib/Support/Timer.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'lib/Support/Timer.cpp') diff --git a/lib/Support/Timer.cpp b/lib/Support/Timer.cpp index 4b88be2b09..ff3fd6fefe 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 { -- cgit v1.2.3