xref: /llvm-project/lldb/test/API/lang/cpp/offsetof/main.cpp (revision 99451b4453688a94c6014cac233d371ab4cc342d)
1*99451b44SJordan Rupprecht #include <cstdint>
2*99451b44SJordan Rupprecht 
3*99451b44SJordan Rupprecht class Base {
4*99451b44SJordan Rupprecht   int32_t a;
5*99451b44SJordan Rupprecht };
6*99451b44SJordan Rupprecht class Class1 : Base {
7*99451b44SJordan Rupprecht public:
8*99451b44SJordan Rupprecht   int32_t b;
9*99451b44SJordan Rupprecht };
10*99451b44SJordan Rupprecht 
11*99451b44SJordan Rupprecht class EmptyBase {
12*99451b44SJordan Rupprecht };
13*99451b44SJordan Rupprecht class Class2 : EmptyBase {
14*99451b44SJordan Rupprecht public:
15*99451b44SJordan Rupprecht   int32_t b;
16*99451b44SJordan Rupprecht };
17*99451b44SJordan Rupprecht 
main(int argc,char ** argv)18*99451b44SJordan Rupprecht int main(int argc, char **argv) {
19*99451b44SJordan Rupprecht   Class1 c1;
20*99451b44SJordan Rupprecht   Class2 c2;
21*99451b44SJordan Rupprecht   //% self.expect("expr offsetof(Base, a)", substrs=["= 0"])
22*99451b44SJordan Rupprecht   //% self.expect("expr offsetof(Class1, b)", substrs=["= 4"])
23*99451b44SJordan Rupprecht   //% self.expect("expr offsetof(Class2, b)", substrs=["= 0"])
24*99451b44SJordan Rupprecht   return c1.b + c2.b;
25*99451b44SJordan Rupprecht }
26