1#include "shared.h"
2
3struct WrapperA {
4 OuterY::Inner<unsigned int> y;
5};
6
7int main() {
8 // WrapperA refers to the Inner and Outer class DIEs from this CU.
9 WrapperA a;
10 // WrapperB refers to the Inner and Outer DIEs from the other.cpp CU.
11 // It is important that WrapperB is only forward-declared in shared.h.
12 WrapperB* b = foo();
13
14 // Evaluating 'b' here will parse other.cpp's DIEs for all
15 // the Inner and Outer classes from shared.h.
16 //
17 // Evaluating 'a' here will find and reuse the already-parsed
18 // versions of the Inner and Outer classes. In the associated test
19 // we make sure that we can still resolve all the types properly
20 // by evaluating 'a.y.oY_inner.oX_inner'.
21 return 0; // break here
22}
23

source code of lldb/test/API/lang/cpp/nested-class-other-compilation-unit/main.cpp