diff options
-rw-r--r-- | lib/Frontend/DeclXML.cpp | 12 | ||||
-rw-r--r-- | test/Coverage/c-language-features.inc | 8 |
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/Frontend/DeclXML.cpp b/lib/Frontend/DeclXML.cpp index 97a7f55583..3b600ffd2f 100644 --- a/lib/Frontend/DeclXML.cpp +++ b/lib/Frontend/DeclXML.cpp @@ -43,6 +43,18 @@ class DocumentXML::DeclPrinter : public DeclVisitor<DocumentXML::DeclPrinter> { Visit(*i); Doc.toParent(); } + + for (RecordDecl::decl_iterator i = RD->decls_begin(), + e = RD->decls_end(); i != e; ++i) { + Decl *d = *i; + if (isa<RecordDecl>(d)) { + RecordDecl* pRec = cast<RecordDecl>(d); + if (pRec->isDefinition()) { + Visit(pRec); + Doc.toParent(); + } + } + } } void addSubNodes(CXXRecordDecl* RD) { diff --git a/test/Coverage/c-language-features.inc b/test/Coverage/c-language-features.inc index 3548132500..0ff1237b12 100644 --- a/test/Coverage/c-language-features.inc +++ b/test/Coverage/c-language-features.inc @@ -188,3 +188,11 @@ void f10() { x = (struct f10_s0) { .iv0 = "name" }; } + +// Nested structures. +struct s11 { + struct s11_2 { + int f0; + } f0; + int f1; +}; |