diff options
Diffstat (limited to 'unittests/ExecutionEngine/Orc')
3 files changed, 18 insertions, 15 deletions
diff --git a/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp b/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp index 96214a368dce..362c143c54ef 100644 --- a/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp +++ b/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp @@ -304,7 +304,7 @@ TEST(ObjectTransformLayerTest, Main) { return nullptr; } void registerEHFrames(uint8_t *, uint64_t, size_t) override {} - void deregisterEHFrames(uint8_t *, uint64_t, size_t) override {} + void deregisterEHFrames() override {} bool finalizeMemory(std::string *) override { return false; } }; diff --git a/unittests/ExecutionEngine/Orc/OrcTestCommon.h b/unittests/ExecutionEngine/Orc/OrcTestCommon.h index 7fb26634c7a7..dff72c6b9d57 100644 --- a/unittests/ExecutionEngine/Orc/OrcTestCommon.h +++ b/unittests/ExecutionEngine/Orc/OrcTestCommon.h @@ -101,7 +101,7 @@ class TypeBuilder<DummyStruct, XCompile> { public: static StructType *get(LLVMContext &Context) { return StructType::get( - TypeBuilder<types::i<32>[256], XCompile>::get(Context), nullptr); + TypeBuilder<types::i<32>[256], XCompile>::get(Context)); } }; diff --git a/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.cpp b/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.cpp index de99c022fb9d..c13a75a5cbfe 100644 --- a/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.cpp +++ b/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.cpp @@ -90,7 +90,8 @@ TEST(RTDyldObjectLinkingLayerTest, TestSetProcessAllSections) { Objs.push_back(OwningObj.getBinary()); bool DebugSectionSeen = false; - SectionMemoryManagerWrapper SMMW(DebugSectionSeen); + auto SMMW = + std::make_shared<SectionMemoryManagerWrapper>(DebugSectionSeen); auto Resolver = createLambdaResolver( [](const std::string &Name) { @@ -102,7 +103,7 @@ TEST(RTDyldObjectLinkingLayerTest, TestSetProcessAllSections) { { // Test with ProcessAllSections = false (the default). - auto H = ObjLayer.addObjectSet(Objs, &SMMW, &*Resolver); + auto H = ObjLayer.addObjectSet(Objs, SMMW, &*Resolver); ObjLayer.emitAndFinalize(H); EXPECT_EQ(DebugSectionSeen, false) << "Unexpected debug info section"; @@ -112,7 +113,7 @@ TEST(RTDyldObjectLinkingLayerTest, TestSetProcessAllSections) { { // Test with ProcessAllSections = true. ObjLayer.setProcessAllSections(true); - auto H = ObjLayer.addObjectSet(Objs, &SMMW, &*Resolver); + auto H = ObjLayer.addObjectSet(Objs, SMMW, &*Resolver); ObjLayer.emitAndFinalize(H); EXPECT_EQ(DebugSectionSeen, true) << "Expected debug info section not seen"; @@ -178,14 +179,15 @@ TEST_F(RTDyldObjectLinkingLayerExecutionTest, NoDuplicateFinalization) { return JITSymbol(nullptr); }); - SectionMemoryManagerWrapper SMMW; - ObjLayer.addObjectSet(std::move(Obj1Set), &SMMW, &*Resolver); - auto H = ObjLayer.addObjectSet(std::move(Obj2Set), &SMMW, &*Resolver); + auto SMMW = std::make_shared<SectionMemoryManagerWrapper>(); + ObjLayer.addObjectSet(std::move(Obj1Set), SMMW, &*Resolver); + auto H = ObjLayer.addObjectSet(std::move(Obj2Set), SMMW, &*Resolver); ObjLayer.emitAndFinalize(H); - + ObjLayer.removeObjectSet(H); + // Finalization of module 2 should trigger finalization of module 1. // Verify that finalize on SMMW is only called once. - EXPECT_EQ(SMMW.FinalizationCount, 1) + EXPECT_EQ(SMMW->FinalizationCount, 1) << "Extra call to finalize"; } @@ -238,14 +240,15 @@ TEST_F(RTDyldObjectLinkingLayerExecutionTest, NoPrematureAllocation) { std::vector<object::ObjectFile*> Obj2Set; Obj2Set.push_back(Obj2.getBinary()); - SectionMemoryManagerWrapper SMMW; + auto SMMW = std::make_shared<SectionMemoryManagerWrapper>(); NullResolver NR; - auto H = ObjLayer.addObjectSet(std::move(Obj1Set), &SMMW, &NR); - ObjLayer.addObjectSet(std::move(Obj2Set), &SMMW, &NR); + auto H = ObjLayer.addObjectSet(std::move(Obj1Set), SMMW, &NR); + ObjLayer.addObjectSet(std::move(Obj2Set), SMMW, &NR); ObjLayer.emitAndFinalize(H); - + ObjLayer.removeObjectSet(H); + // Only one call to needsToReserveAllocationSpace should have been made. - EXPECT_EQ(SMMW.NeedsToReserveAllocationSpaceCount, 1) + EXPECT_EQ(SMMW->NeedsToReserveAllocationSpaceCount, 1) << "More than one call to needsToReserveAllocationSpace " "(multiple unrelated objects loaded prior to finalization)"; } |