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