brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · bb8f56e Raw
73 lines · cpp
1//----------------------------------------------------------------------------//2// Struct loading declarations.3 4struct StructFirstMember { int i; };5struct StructBehindPointer { int i; };6struct StructBehindRef { int i; };7struct StructMember { int i; };8 9StructBehindRef struct_instance;10 11struct SomeStruct {12  StructFirstMember *first;13  StructBehindPointer *ptr;14  StructMember member;15  StructBehindRef &ref = struct_instance;16};17 18struct OtherStruct {19  int member_int;20};21 22//----------------------------------------------------------------------------//23// Class loading declarations.24 25struct ClassMember { int i; };26struct StaticClassMember { int i; };27struct UnusedClassMember { int i; };28struct UnusedClassMemberPtr { int i; };29 30namespace NS {31class ClassInNamespace {32  int i;33};34class ClassWeEnter {35public:36  int dummy; // Prevent bug where LLDB always completes first member.37  ClassMember member;38  static StaticClassMember static_member;39  UnusedClassMember unused_member;40  UnusedClassMemberPtr *unused_member_ptr;41  int enteredFunction() {42    return member.i; // Location: class function43  }44};45StaticClassMember ClassWeEnter::static_member;46};47 48//----------------------------------------------------------------------------//49// Function we can stop in.50 51int functionWithOtherStruct() {52  OtherStruct other_struct_var;53  other_struct_var.member_int++; // Location: other struct function54  return other_struct_var.member_int;55}56 57int functionWithMultipleLocals() {58  SomeStruct struct_var;59  OtherStruct other_struct_var;60  NS::ClassInNamespace namespace_class;61  other_struct_var.member_int++; // Location: multiple locals function62  return other_struct_var.member_int;63}64 65int main(int argc, char **argv) {66  NS::ClassWeEnter c;67  c.enteredFunction();68 69  functionWithOtherStruct();70  functionWithMultipleLocals();71  return 0;72}73