[MCJIT] Fix PR20656 by teaching MCJIT to honor ExecutionEngine's global mapping.
[oota-llvm.git] / lib / ExecutionEngine / ExecutionEngine.cpp
index 67b843737cd2b6abadd969d48f270ccb96b26c8f..1fc6bb5fe1669811471623c9cb51a907d9c46bd0 100644 (file)
@@ -189,10 +189,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();
 }