forked from OSchip/llvm-project
Revert "[clang-repl] Support destructors of global objects."
This reverts commit 9de8b05bfe
.
This commit is contained in:
parent
31ae52859f
commit
45b6c38145
|
@ -53,12 +53,6 @@ IncrementalExecutor::IncrementalExecutor(llvm::orc::ThreadSafeContext &TSC,
|
|||
|
||||
IncrementalExecutor::~IncrementalExecutor() {}
|
||||
|
||||
// Clean up the JIT instance.
|
||||
llvm::Error IncrementalExecutor::cleanUp() {
|
||||
// This calls the global dtors of registered modules.
|
||||
return Jit->deinitialize(Jit->getMainJITDylib());
|
||||
}
|
||||
|
||||
llvm::Error IncrementalExecutor::addModule(PartialTranslationUnit &PTU) {
|
||||
llvm::orc::ResourceTrackerSP RT =
|
||||
Jit->getMainJITDylib().createResourceTracker();
|
||||
|
|
|
@ -51,7 +51,6 @@ public:
|
|||
llvm::Error addModule(PartialTranslationUnit &PTU);
|
||||
llvm::Error removeModule(PartialTranslationUnit &PTU);
|
||||
llvm::Error runCtors() const;
|
||||
llvm::Error cleanUp();
|
||||
llvm::Expected<llvm::JITTargetAddress>
|
||||
getSymbolAddress(llvm::StringRef Name, SymbolNameKind NameKind) const;
|
||||
llvm::orc::LLJIT *getExecutionEngine() const { return Jit.get(); }
|
||||
|
|
|
@ -183,14 +183,7 @@ Interpreter::Interpreter(std::unique_ptr<CompilerInstance> CI,
|
|||
*TSCtx->getContext(), Err);
|
||||
}
|
||||
|
||||
Interpreter::~Interpreter() {
|
||||
if (IncrExecutor) {
|
||||
if (llvm::Error Err = IncrExecutor->cleanUp())
|
||||
llvm::report_fatal_error(
|
||||
llvm::Twine("Failed to clean up IncrementalExecutor: ") +
|
||||
toString(std::move(Err)));
|
||||
}
|
||||
}
|
||||
Interpreter::~Interpreter() {}
|
||||
|
||||
llvm::Expected<std::unique_ptr<Interpreter>>
|
||||
Interpreter::create(std::unique_ptr<CompilerInstance> CI) {
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
// clang-format off
|
||||
// RUN: clang-repl "int x = 10;" "int y=7; err;" "int y = 10;"
|
||||
// RUN: clang-repl "int i = 10;" 'extern "C" int printf(const char*,...);' \
|
||||
// RUN: 'auto r1 = printf("i = %d\n", i);' | FileCheck --check-prefix=CHECK-DRIVER %s
|
||||
|
@ -19,7 +18,4 @@ auto r2 = printf("S[f=%f, m=0x%llx]\n", s.f, reinterpret_cast<unsigned long long
|
|||
inline int foo() { return 42; }
|
||||
int r3 = foo();
|
||||
|
||||
struct D { float f = 1.0; D *m = nullptr; D(){} ~D() { printf("D[f=%f, m=0x%llx]\n", f, reinterpret_cast<unsigned long long>(m)); }} d;
|
||||
// CHECK: D[f=1.000000, m=0x0]
|
||||
|
||||
%quit
|
||||
|
|
|
@ -70,8 +70,6 @@ int main(int argc, const char **argv) {
|
|||
ExitOnErr.setBanner("clang-repl: ");
|
||||
llvm::cl::ParseCommandLineOptions(argc, argv);
|
||||
|
||||
llvm::llvm_shutdown_obj Y; // Call llvm_shutdown() on exit.
|
||||
|
||||
std::vector<const char *> ClangArgv(ClangArgs.size());
|
||||
std::transform(ClangArgs.begin(), ClangArgs.end(), ClangArgv.begin(),
|
||||
[](const std::string &s) -> const char * { return s.data(); });
|
||||
|
@ -129,5 +127,7 @@ int main(int argc, const char **argv) {
|
|||
// later errors use the default handling behavior instead.
|
||||
llvm::remove_fatal_error_handler();
|
||||
|
||||
llvm::llvm_shutdown();
|
||||
|
||||
return checkDiagErrors(Interp->getCompilerInstance());
|
||||
}
|
||||
|
|
|
@ -48,7 +48,6 @@ createInterpreter(const Args &ExtraArgs = {},
|
|||
TEST(InterpreterTest, CatchException) {
|
||||
llvm::InitializeNativeTarget();
|
||||
llvm::InitializeNativeTargetAsmPrinter();
|
||||
llvm::llvm_shutdown_obj Y; // Call llvm_shutdown() on exit.
|
||||
|
||||
{
|
||||
auto J = llvm::orc::LLJITBuilder().create();
|
||||
|
@ -132,6 +131,8 @@ extern "C" int throw_exception() {
|
|||
EXPECT_ANY_THROW(ThrowException());
|
||||
std::string CapturedStdOut = testing::internal::GetCapturedStdout();
|
||||
EXPECT_EQ(CapturedStdOut, "Caught: 'To be caught in JIT'\n");
|
||||
|
||||
llvm::llvm_shutdown();
|
||||
}
|
||||
|
||||
} // end anonymous namespace
|
||||
|
|
Loading…
Reference in New Issue