diff options
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/CodeGen/CGDeclCXX.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/clang/lib/CodeGen/CGDeclCXX.cpp b/clang/lib/CodeGen/CGDeclCXX.cpp index 7bdb9eb0a4a..73f3c987d1b 100644 --- a/clang/lib/CodeGen/CGDeclCXX.cpp +++ b/clang/lib/CodeGen/CGDeclCXX.cpp @@ -281,9 +281,8 @@ CodeGenModule::EmitCXXGlobalVarDeclInitFunc(const VarDecl *D, // FIXME: We only need to register one __cxa_thread_atexit function for the // entire TU. CXXThreadLocalInits.push_back(Fn); - } else if (D->hasAttr<InitPriorityAttr>()) { - unsigned int order = D->getAttr<InitPriorityAttr>()->getPriority(); - OrderGlobalInits Key(order, PrioritizedCXXGlobalInits.size()); + } else if (const InitPriorityAttr *IPA = D->getAttr<InitPriorityAttr>()) { + OrderGlobalInits Key(IPA->getPriority(), PrioritizedCXXGlobalInits.size()); PrioritizedCXXGlobalInits.push_back(std::make_pair(Key, Fn)); DelayedCXXInitPosition.erase(D); } else if (D->getTemplateSpecializationKind() != TSK_ExplicitSpecialization && |