]> granicus.if.org Git - clang/commitdiff
Per Chris's comment, remove another static (this one
authorFariborz Jahanian <fjahanian@apple.com>
Tue, 22 Jun 2010 00:23:08 +0000 (00:23 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Tue, 22 Jun 2010 00:23:08 +0000 (00:23 +0000)
is a static comparator operator).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106511 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGDeclCXX.cpp
lib/CodeGen/CodeGenModule.h

index c2e2dd0ee48000603464462ec0584e24e33a52e2..9695173513b26c9ec602fb778b39eed2457cc406 100644 (file)
@@ -180,22 +180,6 @@ CodeGenModule::EmitCXXGlobalVarDeclInitFunc(const VarDecl *D) {
     CXXGlobalInits.push_back(Fn);
 }
 
-typedef std::pair<CodeGen::OrderGlobalInitsType, 
-                  llvm::Function *> global_init_pair;
-static int PrioritizedCXXGlobalInitsCmp(const void* a, const void* b) {
-  const global_init_pair *LHS = static_cast<const global_init_pair*>(a);
-  const global_init_pair *RHS = static_cast<const global_init_pair*>(b);
-  if (LHS->first.priority < RHS->first.priority)
-    return -1;
-  if (LHS->first.priority == RHS->first.priority) {
-    if (LHS->first.lex_order < RHS->first.lex_order)
-      return -1;
-    if (LHS->first.lex_order == RHS->first.lex_order)
-      return 0;
-  }
-  return +1;
-}
-                                        
 void
 CodeGenModule::EmitCXXGlobalInitFunc() {
   if (CXXGlobalInits.empty() && PrioritizedCXXGlobalInits.empty())
@@ -212,8 +196,7 @@ CodeGenModule::EmitCXXGlobalInitFunc() {
   if (!PrioritizedCXXGlobalInits.empty()) {
     llvm::SmallVector<llvm::Constant*, 8> LocalCXXGlobalInits;
     llvm::array_pod_sort(PrioritizedCXXGlobalInits.begin(), 
-                         PrioritizedCXXGlobalInits.end(), 
-                         PrioritizedCXXGlobalInitsCmp);
+                         PrioritizedCXXGlobalInits.end()); 
     for (unsigned i = 0; i < PrioritizedCXXGlobalInits.size(); i++) {
       llvm::Function *Fn = PrioritizedCXXGlobalInits[i].second;
       LocalCXXGlobalInits.push_back(Fn);
index 713a5fdd64a302141547100a07e8336b10fcb227..fbb5d35022bac1a5d29f20478aaa9253409f3007 100644 (file)
@@ -80,6 +80,20 @@ namespace CodeGen {
     unsigned int lex_order;
     OrderGlobalInits(unsigned int p, unsigned int l) 
     : priority(p), lex_order(l) {}
+    friend bool operator==(const OrderGlobalInits &LHS,
+                    const OrderGlobalInits &RHS) {
+      return LHS.priority == RHS.priority &&
+             LHS.lex_order == RHS.lex_order;
+    }
+    
+    friend bool operator<(const OrderGlobalInits &LHS,
+                   const OrderGlobalInits &RHS) {
+      if (LHS.priority < RHS.priority)
+        return true;
+      
+      return LHS.priority == RHS.priority &&
+            LHS.lex_order < RHS.lex_order;
+    }
   } OrderGlobalInitsType;
   
 /// CodeGenModule - This class organizes the cross-function state that is used