Global variables beginning with \01 have special meaning on Darwin, so we need to remove

the name prefix when we change them from internal to external.  This allows bugpointing
of codegen miscompilations to work more reliably on Darwin.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53236 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Owen Anderson 2008-07-08 16:38:42 +00:00
parent 28124ac606
commit 7220b814ed

View File

@ -262,8 +262,11 @@ Module *llvm::SplitFunctionsOutOfModule(Module *M,
for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I)
I->setLinkage(GlobalValue::ExternalLinkage);
for (Module::global_iterator I = M->global_begin(), E = M->global_end();
I != E; ++I)
I != E; ++I) {
if (I->hasName() && *I->getNameStart() == '\01')
I->setName(I->getNameStart()+1, I->getNameLen()-1);
I->setLinkage(GlobalValue::ExternalLinkage);
}
Module *New = CloneModule(M);