From: Owen Anderson Date: Tue, 8 Jul 2008 16:38:42 +0000 (+0000) Subject: Global variables beginning with \01 have special meaning on Darwin, so we need to... X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7220b814ed6f432d1d31d444b65e0c3b120942df;p=oota-llvm.git 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 --- diff --git a/tools/bugpoint/ExtractFunction.cpp b/tools/bugpoint/ExtractFunction.cpp index ca8a279153f..776922aa5d4 100644 --- a/tools/bugpoint/ExtractFunction.cpp +++ b/tools/bugpoint/ExtractFunction.cpp @@ -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);