]> granicus.if.org Git - clang/commitdiff
Frontend/XML: Add support for printing nested structures, patch by Martin Vejnár!
authorDaniel Dunbar <daniel@zuster.org>
Wed, 29 Sep 2010 16:09:28 +0000 (16:09 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Wed, 29 Sep 2010 16:09:28 +0000 (16:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115041 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Frontend/DeclXML.cpp
test/Coverage/c-language-features.inc

index 97a7f5558392534ca1edc1c57f747e6c8fdd8697..3b600ffd2f41071df11196a5ba95288f20f352d3 100644 (file)
@@ -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) {
index 3548132500f9737a11ae3221579fad498f19061c..0ff1237b12e8f6efcf2f115a8c1a6150ca533ea4 100644 (file)
@@ -188,3 +188,11 @@ void f10() {
 
   x = (struct f10_s0) { .iv0 = "name" };
 }
+
+// Nested structures.
+struct s11 {
+  struct s11_2 {
+    int f0;
+  } f0;
+  int f1;
+};