diff options
Diffstat (limited to 'lib/ExecutionEngine/ExecutionEngine.cpp')
| -rw-r--r-- | lib/ExecutionEngine/ExecutionEngine.cpp | 11 | 
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/ExecutionEngine/ExecutionEngine.cpp b/lib/ExecutionEngine/ExecutionEngine.cpp index c2ff8e27af47..67a1ca67e2f3 100644 --- a/lib/ExecutionEngine/ExecutionEngine.cpp +++ b/lib/ExecutionEngine/ExecutionEngine.cpp @@ -180,10 +180,17 @@ uint64_t ExecutionEngineState::RemoveMapping(StringRef Name) {  }  std::string ExecutionEngine::getMangledName(const GlobalValue *GV) { +  assert(GV->hasName() && "Global must have name."); +    MutexGuard locked(lock); -  Mangler Mang;    SmallString<128> FullName; -  Mang.getNameWithPrefix(FullName, GV, false); + +  const DataLayout &DL = +    GV->getParent()->getDataLayout().isDefault() +      ? *getDataLayout() +      : GV->getParent()->getDataLayout(); + +  Mangler::getNameWithPrefix(FullName, GV->getName(), DL);    return FullName.str();  }  | 
