Get this building on 64 bit machines (error:
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
diff --git a/lib/Transforms/IPO/MergeFunctions.cpp b/lib/Transforms/IPO/MergeFunctions.cpp
index 563ed7d..6737b34 100644
--- a/lib/Transforms/IPO/MergeFunctions.cpp
+++ b/lib/Transforms/IPO/MergeFunctions.cpp
@@ -80,8 +80,8 @@
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 @@
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 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";