[cfe-commits] r169307 - in /cfe/trunk: lib/AST/StmtPrinter.cpp test/Index/comment-c-decls.c

Fariborz Jahanian fjahanian at apple.com
Tue Dec 4 13:15:24 PST 2012


Author: fjahanian
Date: Tue Dec  4 15:15:23 2012
New Revision: 169307

URL: http://llvm.org/viewvc/llvm-project?rev=169307&view=rev
Log:
Testing C declarations embedded in
<declaration> tag of Comment XML and fixed a
missing block literal printout as result of the testing. 
// rdar://12378714

Added:
    cfe/trunk/test/Index/comment-c-decls.c
Modified:
    cfe/trunk/lib/AST/StmtPrinter.cpp

Modified: cfe/trunk/lib/AST/StmtPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/StmtPrinter.cpp?rev=169307&r1=169306&r2=169307&view=diff
==============================================================================
--- cfe/trunk/lib/AST/StmtPrinter.cpp (original)
+++ cfe/trunk/lib/AST/StmtPrinter.cpp Tue Dec  4 15:15:23 2012
@@ -1838,6 +1838,7 @@
     }
     OS << ')';
   }
+  OS << "{ }";
 }
 
 void StmtPrinter::VisitOpaqueValueExpr(OpaqueValueExpr *Node) { 

Added: cfe/trunk/test/Index/comment-c-decls.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/comment-c-decls.c?rev=169307&view=auto
==============================================================================
--- cfe/trunk/test/Index/comment-c-decls.c (added)
+++ cfe/trunk/test/Index/comment-c-decls.c Tue Dec  4 15:15:23 2012
@@ -0,0 +1,104 @@
+// RUN: rm -rf %t
+// RUN: mkdir %t
+// RUN: c-index-test -test-load-source all -comments-xml-schema=%S/../../bindings/xml/comment-xml-schema.rng -target x86_64-apple-darwin10 %s > %t/out
+// RUN: FileCheck %s < %t/out
+
+// Ensure that XML we generate is not invalid.
+// RUN: FileCheck %s -check-prefix=WRONG < %t/out
+// WRONG-NOT: CommentXMLInvalid
+// rdar://12378714
+
+/**
+ * \brief Aaa.
+*/
+int global_function();
+// CHECK: <Declaration>int global_function()</Declaration>
+
+/**
+ * \param x1 Aaa.
+*/
+extern void external_function(int x1);
+// CHECK: <Declaration>extern void external_function(int x1)</Declaration>
+
+/**
+ * \brief global variable;
+*/
+int global_variable;
+// CHECK: <Declaration>int global_variable</Declaration>
+
+/**
+ * \brief local variable;
+*/
+static int static_variable;
+// CHECK: <Declaration>static int static_variable</Declaration>
+
+/**
+ * \brief external variable
+*/
+extern int external_variable;
+// CHECK: <Declaration>extern int external_variable</Declaration>
+
+int global_function() {
+  /**
+   * \brief a local variable
+  */
+  int local = 10;
+  return local;
+}
+// CHECK: <Declaration>int global_function()</Declaration>
+// CHECK: <Declaration>int local = 10</Declaration>
+
+/**
+ * \brief initialized decl.
+*/
+int initialized_global = 100;
+// CHECK: <Declaration>int initialized_global = 100</Declaration>
+
+/**
+ * \brief typedef example
+*/
+typedef int INT_T;
+// CHECK: <Declaration>typedef int INT_T</Declaration>
+
+/**
+ * \brief aggregate type example
+*/
+struct S {
+/**
+ * \brief iS1;
+*/
+  int iS1;
+/**
+ * \brief dS1;
+*/
+  double dS1;
+};
+// CHECK: <Declaration>struct S {\n}</Declaration>
+// CHECK: <Declaration>int iS1</Declaration>
+// CHECK: <Declaration>double dS1</Declaration>
+
+/**
+ * \brief enum e;
+*/
+enum e {
+  One,
+/**
+ * \brief Two;
+*/
+  Two,
+  Three
+};
+// CHECK: <Declaration>enum e {\n}</Declaration>
+// CHECK: <Declaration>Two</Declaration>
+
+/**
+ *\brief block declaration
+*/
+int (^Block) (int i, int j);
+// CHECK: <Declaration>int (^Block)(int, int)</Declaration>
+
+/**
+ *\brief block declaration
+*/
+int (^Block1) (int i, int j) = ^(int i, int j) { return i + j; };
+// CHECK: <Declaration>int (^Block1)(int, int) = ^(int i, int j){ }</Declaration>





More information about the cfe-commits mailing list