diff options
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/Core.cpp | 14 | ||||
-rw-r--r-- | llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/Core.cpp b/llvm/lib/ExecutionEngine/Orc/Core.cpp index 4c1ed18d4d1..2733528790d 100644 --- a/llvm/lib/ExecutionEngine/Orc/Core.cpp +++ b/llvm/lib/ExecutionEngine/Orc/Core.cpp @@ -40,14 +40,28 @@ void AsynchronousSymbolQuery::setDefinition(SymbolStringPtr Name, if (OutstandingResolutions == 0) return; + assert(NotifySymbolsResolved && "Notify callback not set"); + + errs() + << "OutstandingResolutions = " << OutstandingResolutions << "\n" + << "OutstandingFinalizations = " << OutstandingFinalizations << "\n" + << "Symbols.size() = " << Symbols.size() << "\n" + << "Symbols.count(Name) = " << Symbols.count(Name) << "\n"; + assert(!Symbols.count(Name) && "Symbol has already been assigned an address"); + errs() << "Past assert\n"; Symbols.insert(std::make_pair(std::move(Name), std::move(Sym))); + errs() << "Past insert\n"; --OutstandingResolutions; + errs() << "Past subtract\n"; if (OutstandingResolutions == 0) { + errs() << "Past test\n"; NotifySymbolsResolved(std::move(Symbols)); // Null out NotifySymbolsResolved to indicate that we've already called it. + errs() << "Past callback\n"; NotifySymbolsResolved = {}; + errs() << "Past callback-reset\n"; } } diff --git a/llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp b/llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp index a2bfe748350..91a7083924b 100644 --- a/llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp +++ b/llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp @@ -45,6 +45,7 @@ TEST(CoreAPIsTest, AsynchronousSymbolQuerySuccessfulResolutionOnly) { EXPECT_TRUE(OnResolutionRun) << "OnResolutionCallback was not run"; EXPECT_FALSE(OnReadyRun) << "OnReady unexpectedly run"; + errs() << "Exiting test\n"; } } |