diff options
Diffstat (limited to 'gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/lazy-loading/main.cpp')
-rw-r--r-- | gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/lazy-loading/main.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/lazy-loading/main.cpp b/gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/lazy-loading/main.cpp new file mode 100644 index 00000000000..34d62b483b6 --- /dev/null +++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/functionalities/lazy-loading/main.cpp @@ -0,0 +1,69 @@ +//----------------------------------------------------------------------------// +// Struct loading declarations. + +struct StructFirstMember { int i; }; +struct StructBehindPointer { int i; }; +struct StructBehindRef { int i; }; +struct StructMember { int i; }; + +StructBehindRef struct_instance; + +struct SomeStruct { + StructFirstMember *first; + StructBehindPointer *ptr; + StructMember member; + StructBehindRef &ref = struct_instance; +}; + +struct OtherStruct { + int member_int; +}; + +//----------------------------------------------------------------------------// +// Class loading declarations. + +struct ClassMember { int i; }; +struct UnusedClassMember { int i; }; +struct UnusedClassMemberPtr { int i; }; + +namespace NS { +class ClassInNamespace { + int i; +}; +class ClassWeEnter { +public: + int dummy; // Prevent bug where LLDB always completes first member. + ClassMember member; + UnusedClassMember unused_member; + UnusedClassMemberPtr *unused_member_ptr; + int enteredFunction() { + return member.i; // Location: class function + } +}; +}; + +//----------------------------------------------------------------------------// +// Function we can stop in. + +int functionWithOtherStruct() { + OtherStruct other_struct_var; + other_struct_var.member_int++; // Location: other struct function + return other_struct_var.member_int; +} + +int functionWithMultipleLocals() { + SomeStruct struct_var; + OtherStruct other_struct_var; + NS::ClassInNamespace namespace_class; + other_struct_var.member_int++; // Location: multiple locals function + return other_struct_var.member_int; +} + +int main(int argc, char **argv) { + NS::ClassWeEnter c; + c.enteredFunction(); + + functionWithOtherStruct(); + functionWithMultipleLocals(); + return 0; +} |