@@ -279,60 +279,59 @@ TEST(ObjectTransformLayerTest, Main) {
279
279
EXPECT_EQ (289 , *OwnedObj) << " Expected incrementing transform" ;
280
280
281
281
volatile bool RunStaticChecks = false ;
282
- if (RunStaticChecks) {
283
- // Make sure that ObjectTransformLayer implements the object layer concept
284
- // correctly by sandwitching one between an ObjectLinkingLayer and an
285
- // IRCompileLayer, verifying that it compiles if we have a call to the
286
- // IRComileLayer's addModuleSet that should call the transform layer's
287
- // addObjectSet, and also calling the other public transform layer methods
288
- // directly to make sure the methods they intend to forward to exist on
289
- // the ObjectLinkingLayer.
290
-
291
- // We'll need a concrete MemoryManager class.
292
- class NullManager : public llvm ::RuntimeDyld::MemoryManager {
293
- public:
294
- uint8_t *allocateCodeSection (uintptr_t , unsigned , unsigned ,
295
- llvm::StringRef) override {
296
- return nullptr ;
297
- }
298
- uint8_t *allocateDataSection (uintptr_t , unsigned , unsigned ,
299
- llvm::StringRef, bool ) override {
300
- return nullptr ;
301
- }
302
- void registerEHFrames (uint8_t *, uint64_t , size_t ) override {}
303
- void deregisterEHFrames (uint8_t *, uint64_t , size_t ) override {}
304
- bool finalizeMemory (std::string *) override { return false ; }
305
- };
306
-
307
- // Construct the jit layers.
308
- ObjectLinkingLayer<> BaseLayer;
309
- auto IdentityTransform = [](
310
- std::unique_ptr<llvm::object::OwningBinary<llvm::object::ObjectFile>>
311
- Obj) { return Obj; };
312
- ObjectTransformLayer<decltype (BaseLayer), decltype (IdentityTransform)>
313
- TransformLayer (BaseLayer, IdentityTransform);
314
- auto NullCompiler = [](llvm::Module &) {
315
- return llvm::object::OwningBinary<llvm::object::ObjectFile>();
316
- };
317
- IRCompileLayer<decltype (TransformLayer)> CompileLayer (TransformLayer,
318
- NullCompiler);
319
- std::vector<llvm::Module *> Modules;
320
-
321
- // Make sure that the calls from IRCompileLayer to ObjectTransformLayer
322
- // compile.
323
- NullResolver Resolver;
324
- NullManager Manager;
325
- CompileLayer.addModuleSet (std::vector<llvm::Module *>(), &Manager,
326
- &Resolver);
327
-
328
- // Make sure that the calls from ObjectTransformLayer to ObjectLinkingLayer
329
- // compile.
330
- decltype (TransformLayer)::ObjSetHandleT ObjSet;
331
- TransformLayer.emitAndFinalize (ObjSet);
332
- TransformLayer.findSymbolIn (ObjSet, Name, false );
333
- TransformLayer.findSymbol (Name, true );
334
- TransformLayer.mapSectionAddress (ObjSet, nullptr , 0 );
335
- TransformLayer.removeObjectSet (ObjSet);
336
- }
282
+ if (!RunStaticChecks)
283
+ return ;
284
+
285
+ // Make sure that ObjectTransformLayer implements the object layer concept
286
+ // correctly by sandwitching one between an ObjectLinkingLayer and an
287
+ // IRCompileLayer, verifying that it compiles if we have a call to the
288
+ // IRComileLayer's addModuleSet that should call the transform layer's
289
+ // addObjectSet, and also calling the other public transform layer methods
290
+ // directly to make sure the methods they intend to forward to exist on
291
+ // the ObjectLinkingLayer.
292
+
293
+ // We'll need a concrete MemoryManager class.
294
+ class NullManager : public llvm ::RuntimeDyld::MemoryManager {
295
+ public:
296
+ uint8_t *allocateCodeSection (uintptr_t , unsigned , unsigned ,
297
+ llvm::StringRef) override {
298
+ return nullptr ;
299
+ }
300
+ uint8_t *allocateDataSection (uintptr_t , unsigned , unsigned , llvm::StringRef,
301
+ bool ) override {
302
+ return nullptr ;
303
+ }
304
+ void registerEHFrames (uint8_t *, uint64_t , size_t ) override {}
305
+ void deregisterEHFrames (uint8_t *, uint64_t , size_t ) override {}
306
+ bool finalizeMemory (std::string *) override { return false ; }
307
+ };
308
+
309
+ // Construct the jit layers.
310
+ ObjectLinkingLayer<> BaseLayer;
311
+ auto IdentityTransform = [](
312
+ std::unique_ptr<llvm::object::OwningBinary<llvm::object::ObjectFile>>
313
+ Obj) { return Obj; };
314
+ ObjectTransformLayer<decltype (BaseLayer), decltype (IdentityTransform)>
315
+ TransformLayer (BaseLayer, IdentityTransform);
316
+ auto NullCompiler = [](llvm::Module &) {
317
+ return llvm::object::OwningBinary<llvm::object::ObjectFile>();
318
+ };
319
+ IRCompileLayer<decltype (TransformLayer)> CompileLayer (TransformLayer,
320
+ NullCompiler);
321
+
322
+ // Make sure that the calls from IRCompileLayer to ObjectTransformLayer
323
+ // compile.
324
+ NullResolver Resolver;
325
+ NullManager Manager;
326
+ CompileLayer.addModuleSet (std::vector<llvm::Module *>(), &Manager, &Resolver);
327
+
328
+ // Make sure that the calls from ObjectTransformLayer to ObjectLinkingLayer
329
+ // compile.
330
+ decltype (TransformLayer)::ObjSetHandleT ObjSet;
331
+ TransformLayer.emitAndFinalize (ObjSet);
332
+ TransformLayer.findSymbolIn (ObjSet, Name, false );
333
+ TransformLayer.findSymbol (Name, true );
334
+ TransformLayer.mapSectionAddress (ObjSet, nullptr , 0 );
335
+ TransformLayer.removeObjectSet (ObjSet);
337
336
}
338
337
}
0 commit comments