diff options
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/cpp/nested-class-other-compilation-unit/main.cpp')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/lang/cpp/nested-class-other-compilation-unit/main.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lang/cpp/nested-class-other-compilation-unit/main.cpp b/lldb/packages/Python/lldbsuite/test/lang/cpp/nested-class-other-compilation-unit/main.cpp new file mode 100644 index 00000000000..8a6e6ff81d2 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/lang/cpp/nested-class-other-compilation-unit/main.cpp @@ -0,0 +1,22 @@ +#include "shared.h" + +struct WrapperA { + OuterY::Inner<unsigned int> y; +}; + +int main() { + // WrapperA refers to the Inner and Outer class DIEs from this CU. + WrapperA a; + // WrapperB refers to the Inner and Outer DIEs from the other.cpp CU. + // It is important that WrapperB is only forward-declared in shared.h. + WrapperB* b = foo(); + + // Evaluating 'b' here will parse other.cpp's DIEs for all + // the Inner and Outer classes from shared.h. + // + // Evaluating 'a' here will find and reuse the already-parsed + // versions of the Inner and Outer classes. In the associated test + // we make sure that we can still resolve all the types properly + // by evaluating 'a.y.oY_inner.oX_inner'. + return 0; // break here +} |