mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-23 21:45:46 -04:00

This makes sure that we associate DIEs that are imported from other CUs with the appropriate decl context. Without this fix, nested classes can be dumped directly into their CU context if their parent was imported from another CU. Reviewed By: teemperor, labath Differential Revision: https://reviews.llvm.org/D68278 Patch by Jaroslav Sevcik! llvm-svn: 373470
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
|
|
}
|