23 lines
728 B
C++
23 lines
728 B
C++
#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
|
|
}
|