aboutsummaryrefslogtreecommitdiff
path: root/clang
diff options
context:
space:
mode:
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Interpreter/IncrementalExecutor.cpp19
-rw-r--r--clang/unittests/Interpreter/InterpreterTest.cpp12
2 files changed, 9 insertions, 22 deletions
diff --git a/clang/lib/Interpreter/IncrementalExecutor.cpp b/clang/lib/Interpreter/IncrementalExecutor.cpp
index 2c4dfc9..3f8d606 100644
--- a/clang/lib/Interpreter/IncrementalExecutor.cpp
+++ b/clang/lib/Interpreter/IncrementalExecutor.cpp
@@ -92,19 +92,12 @@ llvm::Error IncrementalExecutor::runCtors() const {
llvm::Expected<llvm::orc::ExecutorAddr>
IncrementalExecutor::getSymbolAddress(llvm::StringRef Name,
SymbolNameKind NameKind) const {
- using namespace llvm::orc;
- auto SO = makeJITDylibSearchOrder({&Jit->getMainJITDylib(),
- Jit->getPlatformJITDylib().get(),
- Jit->getProcessSymbolsJITDylib().get()});
-
- ExecutionSession &ES = Jit->getExecutionSession();
-
- auto SymOrErr =
- ES.lookup(SO, (NameKind == LinkerName) ? ES.intern(Name)
- : Jit->mangleAndIntern(Name));
- if (auto Err = SymOrErr.takeError())
- return std::move(Err);
- return SymOrErr->getAddress();
+ auto Sym = (NameKind == LinkerName) ? Jit->lookupLinkerMangled(Name)
+ : Jit->lookup(Name);
+
+ if (!Sym)
+ return Sym.takeError();
+ return Sym;
}
} // end namespace clang
diff --git a/clang/unittests/Interpreter/InterpreterTest.cpp b/clang/unittests/Interpreter/InterpreterTest.cpp
index 0f546d2..1800bff 100644
--- a/clang/unittests/Interpreter/InterpreterTest.cpp
+++ b/clang/unittests/Interpreter/InterpreterTest.cpp
@@ -234,16 +234,10 @@ TEST(IncrementalProcessing, FindMangledNameSymbol) {
}
std::string MangledName = MangleName(FD);
- auto Addr = Interp->getSymbolAddress(MangledName);
- EXPECT_FALSE(!Addr);
- EXPECT_NE(0U, Addr->getValue());
+ auto Addr = cantFail(Interp->getSymbolAddress(MangledName));
+ EXPECT_NE(0U, Addr.getValue());
GlobalDecl GD(FD);
- EXPECT_EQ(*Addr, cantFail(Interp->getSymbolAddress(GD)));
- cantFail(
- Interp->ParseAndExecute("extern \"C\" int printf(const char*,...);"));
- Addr = Interp->getSymbolAddress("printf");
- EXPECT_FALSE(!Addr);
- EXPECT_EQ((unsigned long long)&printf, Addr->getValue());
+ EXPECT_EQ(Addr, cantFail(Interp->getSymbolAddress(GD)));
}
static void *AllocateObject(TypeDecl *TD, Interpreter &Interp) {