Skip to content

Commit 0911ef1

Browse files
committed
Override getSymbolAddress
1 parent cb27478 commit 0911ef1

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

clang/lib/Interpreter/IncrementalExecutor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class IncrementalExecutor {
5757
virtual llvm::Error removeModule(PartialTranslationUnit &PTU);
5858
virtual llvm::Error runCtors() const;
5959
virtual llvm::Error cleanUp();
60-
llvm::Expected<llvm::orc::ExecutorAddr>
60+
virtual llvm::Expected<llvm::orc::ExecutorAddr>
6161
getSymbolAddress(llvm::StringRef Name, SymbolNameKind NameKind) const;
6262

6363
llvm::orc::LLJIT &GetExecutionEngine() { return *Jit; }

clang/lib/Interpreter/Wasm.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,19 @@ llvm::Error WasmIncrementalExecutor::cleanUp() {
144144
return llvm::Error::success();
145145
}
146146

147+
llvm::Expected<llvm::orc::ExecutorAddr>
148+
WasmIncrementalExecutor::getSymbolAddress(llvm::StringRef Name,
149+
SymbolNameKind NameKind) const {
150+
void* Sym = dlsym(RTLD_DEFAULT, Name.str().c_str());
151+
if (!Sym) {
152+
return llvm::make_error<llvm::StringError>(
153+
"dlsym failed for symbol: " + Name.str(),
154+
llvm::inconvertibleErrorCode());
155+
}
156+
157+
return llvm::orc::ExecutorAddr::fromPtr(Sym);
158+
}
159+
147160
WasmIncrementalExecutor::~WasmIncrementalExecutor() = default;
148161

149162
} // namespace clang

clang/lib/Interpreter/Wasm.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ class WasmIncrementalExecutor : public IncrementalExecutor {
2929
llvm::Error removeModule(PartialTranslationUnit &PTU) override;
3030
llvm::Error runCtors() const override;
3131
llvm::Error cleanUp() override;
32+
llvm::Expected<llvm::orc::ExecutorAddr>
33+
getSymbolAddress(llvm::StringRef Name, SymbolNameKind NameKind) const;
3234

3335
~WasmIncrementalExecutor() override;
3436
};

0 commit comments

Comments
 (0)