From 7220b814ed6f432d1d31d444b65e0c3b120942df Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Tue, 8 Jul 2008 16:38:42 +0000 Subject: [PATCH] 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 --- tools/bugpoint/ExtractFunction.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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); -- 2.34.1