| #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 |
| } |