public void ReturnsSizeOf() { using (var module = Module.Create("test_sizeof")) { var str = StructType.Create(new[] { Type.Int32, Type.Int32 }, true); var def = module.AddFunction( Type.Int32, "structure", new Type[0], (f, b) => { var sz = ConstantExpr.GetSizeOf(str); var sz32 = b.CreateBitCast(sz, Type.Int32); var ret = b.CreateRet(sz32); }); module.Verify(); Initialize.X86.All(); using (var engine = ExecutionEngine.CreateMCJITCompilerForModule(module)) { var func = engine.GetDelegate <Int32Delegate>(def); Assert.AreEqual(8, func()); } } }