1*c9c55cf8SNico Weber // Compile with "cl /c /Zi /GR- ClassLayoutTest.cpp" 2*c9c55cf8SNico Weber // Link with "link ClassLayoutTest.obj /debug /nodefaultlib /entry:main" 3*c9c55cf8SNico Weber 4*c9c55cf8SNico Weber namespace MembersTest { 5*c9c55cf8SNico Weber class A { 6*c9c55cf8SNico Weber public: 7*c9c55cf8SNico Weber typedef int NestedTypedef; 8*c9c55cf8SNico Weber enum NestedEnum { 9*c9c55cf8SNico Weber NestedEnumValue1 10*c9c55cf8SNico Weber }; 11*c9c55cf8SNico Weber MemberFunc()12*c9c55cf8SNico Weber void MemberFunc() {} 13*c9c55cf8SNico Weber 14*c9c55cf8SNico Weber private: 15*c9c55cf8SNico Weber int IntMemberVar; 16*c9c55cf8SNico Weber double DoubleMemberVar; 17*c9c55cf8SNico Weber }; 18*c9c55cf8SNico Weber } 19*c9c55cf8SNico Weber 20*c9c55cf8SNico Weber namespace GlobalsTest { 21*c9c55cf8SNico Weber int IntVar; 22*c9c55cf8SNico Weber double DoubleVar; 23*c9c55cf8SNico Weber 24*c9c55cf8SNico Weber typedef int Typedef; 25*c9c55cf8SNico Weber enum Enum { 26*c9c55cf8SNico Weber Val1 27*c9c55cf8SNico Weber } EnumVar; 28*c9c55cf8SNico Weber Typedef TypedefVar; 29*c9c55cf8SNico Weber } 30*c9c55cf8SNico Weber 31*c9c55cf8SNico Weber namespace BaseClassTest { 32*c9c55cf8SNico Weber class A {}; 33*c9c55cf8SNico Weber class B : public virtual A {}; 34*c9c55cf8SNico Weber class C : public virtual A {}; 35*c9c55cf8SNico Weber class D : protected B, private C {}; 36*c9c55cf8SNico Weber } 37*c9c55cf8SNico Weber 38*c9c55cf8SNico Weber namespace UdtKindTest { 39*c9c55cf8SNico Weber struct A {}; 40*c9c55cf8SNico Weber class B {}; 41*c9c55cf8SNico Weber union C {}; 42*c9c55cf8SNico Weber } 43*c9c55cf8SNico Weber 44*c9c55cf8SNico Weber namespace BitFieldTest { 45*c9c55cf8SNico Weber struct A { 46*c9c55cf8SNico Weber int Bits1 : 1; 47*c9c55cf8SNico Weber int Bits2 : 2; 48*c9c55cf8SNico Weber int Bits3 : 3; 49*c9c55cf8SNico Weber int Bits4 : 4; 50*c9c55cf8SNico Weber int Bits22 : 22; 51*c9c55cf8SNico Weber int Offset0x04; 52*c9c55cf8SNico Weber }; 53*c9c55cf8SNico Weber }; 54*c9c55cf8SNico Weber main(int argc,char ** argv)55*c9c55cf8SNico Weberint main(int argc, char **argv) { 56*c9c55cf8SNico Weber MembersTest::A v1; 57*c9c55cf8SNico Weber v1.MemberFunc(); 58*c9c55cf8SNico Weber BaseClassTest::D v2; 59*c9c55cf8SNico Weber UdtKindTest::A v3; 60*c9c55cf8SNico Weber UdtKindTest::B v4; 61*c9c55cf8SNico Weber UdtKindTest::C v5; 62*c9c55cf8SNico Weber BitFieldTest::A v7; 63*c9c55cf8SNico Weber return 0; 64*c9c55cf8SNico Weber } 65