rnk added inline comments.
================
Comment at: lib/CodeGen/CGDebugInfo.cpp:1075
@@ +1074,3 @@
+ } else if (const auto *nestedRec = dyn_cast<CXXRecordDecl>(I)) {
+ if (!nestedRec->isImplicit())
+ CollectRecordNestedRecord(nestedRec, elements);
----------------
I would add `&& nestedRec->getDeclContext() == record` to this condition to
deal with the `struct B { B(struct A*); };` test case.
================
Comment at: test/CodeGenObjCXX/debug-info-cyclic.mm:11
@@ -10,3 +10,3 @@
// CHECK-SAME: identifier:
-// CHECK: ![[BMEMBERS]] = !{![[BB:[0-9]+]]}
+// CHECK: ![[BMEMBERS]] = !{![[A:[0-9]+]], ![[BB:[0-9]+]]}
B(struct A *);
----------------
This is interesting, this test case shouldn't change. The lexical context for
'struct A' is B, but the semantic context is the surrounding TU. We should only
list class members that use the parent class as their DeclContext.
Also, why is this an Obj-C++ test in the first place, it only uses C++...
http://reviews.llvm.org/D21705
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits