teak-llvm/lldb/packages/Python/lldbsuite/test/lang/cpp/nested-class-other-compilation-unit/main.cpp
Raphael Isemann 5c375ed669 [lldb] Fix evaluation of nested classes with parent from other CU
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
2019-10-02 13:46:17 +00:00

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
}