summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp')
-rw-r--r--llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp26
1 files changed, 7 insertions, 19 deletions
diff --git a/llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp b/llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp
index bb47c4c0030..3ffa9cd9b8f 100644
--- a/llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp
+++ b/llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp
@@ -136,35 +136,23 @@ TEST_F(ExecutionEngineTest, DestructionRemovesGlobalMapping) {
EXPECT_EQ(nullptr, Engine->getGlobalValueAtAddress(&Mem1));
}
-TEST_F(ExecutionEngineTest, LookupWithMangledName) {
- int x;
- llvm::sys::DynamicLibrary::AddSymbol("x", &x);
-
- // Demonstrate that getSymbolAddress accepts mangled names and always strips
- // the leading underscore.
- EXPECT_EQ(reinterpret_cast<uint64_t>(&x),
- RTDyldMemoryManager::getSymbolAddressInProcess("_x"));
-}
-
TEST_F(ExecutionEngineTest, LookupWithMangledAndDemangledSymbol) {
int x;
int _x;
llvm::sys::DynamicLibrary::AddSymbol("x", &x);
llvm::sys::DynamicLibrary::AddSymbol("_x", &_x);
- // Lookup the demangled name first, even if there's a demangled symbol that
- // matches the input already.
+ // RTDyldMemoryManager::getSymbolAddressInProcess expects a mangled symbol,
+ // but DynamicLibrary is a wrapper for dlsym, which expects the unmangled C
+ // symbol name. This test verifies that getSymbolAddressInProcess strips the
+ // leading '_' on Darwin, but not on other platforms.
+#ifdef __APPLE__
EXPECT_EQ(reinterpret_cast<uint64_t>(&x),
RTDyldMemoryManager::getSymbolAddressInProcess("_x"));
-}
-
-TEST_F(ExecutionEngineTest, LookupwithDemangledName) {
- int _x;
- llvm::sys::DynamicLibrary::AddSymbol("_x", &_x);
-
- // But do fallback to looking up a demangled name if there's no ambiguity
+#else
EXPECT_EQ(reinterpret_cast<uint64_t>(&_x),
RTDyldMemoryManager::getSymbolAddressInProcess("_x"));
+#endif
}
}
OpenPOWER on IntegriCloud