OSDN Git Service

Get this building on 64 bit machines (error:
authorDuncan Sands <baldrick@free.fr>
Sun, 2 Nov 2008 09:00:33 +0000 (09:00 +0000)
committerDuncan Sands <baldrick@free.fr>
Sun, 2 Nov 2008 09:00:33 +0000 (09:00 +0000)
cast from ‘const llvm::PointerType*’ to ‘unsigned int’
loses precision).

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

lib/Transforms/IPO/MergeFunctions.cpp

index 563ed7d..6737b34 100644 (file)
@@ -80,8 +80,8 @@ ModulePass *llvm::createMergeFunctionsPass() {
   return new MergeFunctions();
 }
 
-static unsigned hash(const Function *F) {
-  return F->size() ^ reinterpret_cast<unsigned>(F->getType());
+static unsigned long hash(const Function *F) {
+  return F->size() ^ reinterpret_cast<unsigned long>(F->getType());
   //return F->size() ^ F->arg_size() ^ F->getReturnType();
 }
 
@@ -304,7 +304,7 @@ static bool hasAddressTaken(User *U) {
 bool MergeFunctions::runOnModule(Module &M) {
   bool Changed = false;
 
-  std::map<unsigned, std::vector<Function *> > FnMap;
+  std::map<unsigned long, std::vector<Function *> > FnMap;
 
   for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F) {
     if (F->isDeclaration() || F->isIntrinsic())
@@ -326,8 +326,8 @@ bool MergeFunctions::runOnModule(Module &M) {
   bool LocalChanged;
   do {
     LocalChanged = false;
-    for (std::map<unsigned, std::vector<Function *> >::iterator I = FnMap.begin(),
-           E = FnMap.end(); I != E; ++I) {
+    for (std::map<unsigned long, std::vector<Function *> >::iterator
+         I = FnMap.begin(), E = FnMap.end(); I != E; ++I) {
       DOUT << "size: " << FnMap.size() << "\n";
       std::vector<Function *> &FnVec = I->second;
       DOUT << "hash (" << I->first << "): " << FnVec.size() << "\n";