brintos

brintos / llvm-project-archived public Read only

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