1 #include "shared.h" 2 3 struct WrapperA { 4 OuterY::Inner<unsigned int> y; 5 }; 6 7 int 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