Make Module::getNamedFunction prefer non-external functions if there is more than
one function of the same name
llvm-svn: 7274
diff --git a/llvm/lib/VMCore/Module.cpp b/llvm/lib/VMCore/Module.cpp
index 275d4cf..abc4654 100644
--- a/llvm/lib/VMCore/Module.cpp
+++ b/llvm/lib/VMCore/Module.cpp
@@ -172,10 +172,14 @@
///
Function *Module::getNamedFunction(const std::string &Name) {
// Loop over all of the functions, looking for the function desired
+ Function *Found = 0;
for (iterator I = begin(), E = end(); I != E; ++I)
if (I->getName() == Name)
- return I;
- return 0; // function not found...
+ if (I->isExternal())
+ Found = I;
+ else
+ return I;
+ return Found; // Non-external function not found...
}