From: Fariborz Jahanian Date: Mon, 21 Jun 2010 23:31:29 +0000 (+0000) Subject: Avoid using a local static for providing lexical X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=581c78fcb238bbc962176c3dd8399770343c26eb;p=clang Avoid using a local static for providing lexical order of priorotized global object initializations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106503 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGDeclCXX.cpp b/lib/CodeGen/CGDeclCXX.cpp index 9faaed5538..c2e2dd0ee4 100644 --- a/lib/CodeGen/CGDeclCXX.cpp +++ b/lib/CodeGen/CGDeclCXX.cpp @@ -172,10 +172,8 @@ CodeGenModule::EmitCXXGlobalVarDeclInitFunc(const VarDecl *D) { CodeGenFunction(*this).GenerateCXXGlobalVarDeclInitFunc(Fn, D); if (D->hasAttr()) { - static unsigned lix = 0; // to keep the lexical order of equal priority - // objects intact; unsigned int order = D->getAttr()->getPriority(); - OrderGlobalInitsType Key(order, lix++); + OrderGlobalInitsType Key(order, PrioritizedCXXGlobalInits.size()); PrioritizedCXXGlobalInits.push_back(std::make_pair(Key, Fn)); } else