From 93fbd733e778c2623436ed5a0b9cf7f394407b1a Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 8 Nov 2002 20:34:21 +0000 Subject: Use the new getMainFunction() method to efficiently locate main git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4630 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/IPO/Internalize.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'lib/Transforms/IPO/Internalize.cpp') diff --git a/lib/Transforms/IPO/Internalize.cpp b/lib/Transforms/IPO/Internalize.cpp index dfd4d21864..910e1d4322 100644 --- a/lib/Transforms/IPO/Internalize.cpp +++ b/lib/Transforms/IPO/Internalize.cpp @@ -17,21 +17,16 @@ namespace { class InternalizePass : public Pass { virtual bool run(Module &M) { - bool FoundMain = false; // Look for a function named main... - for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) - if (I->getName() == "main" && !I->isExternal() && - I->hasExternalLinkage()) { - FoundMain = true; - break; - } - - if (!FoundMain) return false; // No main found, must be a library... + Function *MainFunc = M.getMainFunction(); + + if (MainFunc == 0 || MainFunc->isExternal()) + return false; // No main found, must be a library... bool Changed = false; // Found a main function, mark all functions not named main as internal. for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) - if (I->getName() != "main" && // Leave the main function external + if (&*I != MainFunc && // Leave the main function external !I->isExternal() && // Function must be defined here !I->hasInternalLinkage()) { // Can't already have internal linkage I->setInternalLinkage(true); -- cgit v1.2.3