1*67e74705SXin Li // RUN: rm -rf %t 2*67e74705SXin Li // RUN: mkdir %t 3*67e74705SXin Li // 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 4*67e74705SXin Li // RUN: FileCheck %s < %t/out 5*67e74705SXin Li 6*67e74705SXin Li // Ensure that XML we generate is not invalid. 7*67e74705SXin Li // RUN: FileCheck %s -check-prefix=WRONG < %t/out 8*67e74705SXin Li // WRONG-NOT: CommentXMLInvalid 9*67e74705SXin Li // rdar://12378714 10*67e74705SXin Li 11*67e74705SXin Li /** 12*67e74705SXin Li * \brief Aaa. 13*67e74705SXin Li */ 14*67e74705SXin Li int global_function(); 15*67e74705SXin Li // CHECK: <Declaration>int global_function()</Declaration> 16*67e74705SXin Li 17*67e74705SXin Li /** 18*67e74705SXin Li * \param x1 Aaa. 19*67e74705SXin Li */ 20*67e74705SXin Li extern void external_function(int x1); 21*67e74705SXin Li // CHECK: <Declaration>extern void external_function(int x1)</Declaration> 22*67e74705SXin Li 23*67e74705SXin Li /** 24*67e74705SXin Li * \brief global variable; 25*67e74705SXin Li */ 26*67e74705SXin Li int global_variable; 27*67e74705SXin Li // CHECK: <Declaration>int global_variable</Declaration> 28*67e74705SXin Li 29*67e74705SXin Li /** 30*67e74705SXin Li * \brief local variable; 31*67e74705SXin Li */ 32*67e74705SXin Li static int static_variable; 33*67e74705SXin Li // CHECK: <Declaration>static int static_variable</Declaration> 34*67e74705SXin Li 35*67e74705SXin Li /** 36*67e74705SXin Li * \brief external variable 37*67e74705SXin Li */ 38*67e74705SXin Li extern int external_variable; 39*67e74705SXin Li // CHECK: <Declaration>extern int external_variable</Declaration> 40*67e74705SXin Li global_function()41*67e74705SXin Liint global_function() { 42*67e74705SXin Li /** 43*67e74705SXin Li * \brief a local variable 44*67e74705SXin Li */ 45*67e74705SXin Li int local = 10; 46*67e74705SXin Li return local; 47*67e74705SXin Li } 48*67e74705SXin Li // CHECK: <Declaration>int global_function()</Declaration> 49*67e74705SXin Li // CHECK: <Declaration>int local = 10</Declaration> 50*67e74705SXin Li 51*67e74705SXin Li /** 52*67e74705SXin Li * \brief initialized decl. 53*67e74705SXin Li */ 54*67e74705SXin Li int initialized_global = 100; 55*67e74705SXin Li // CHECK: <Declaration>int initialized_global = 100</Declaration> 56*67e74705SXin Li 57*67e74705SXin Li /** 58*67e74705SXin Li * \brief typedef example 59*67e74705SXin Li */ 60*67e74705SXin Li typedef int INT_T; 61*67e74705SXin Li // CHECK: <Declaration>typedef int INT_T</Declaration> 62*67e74705SXin Li 63*67e74705SXin Li /** 64*67e74705SXin Li * \brief aggregate type example 65*67e74705SXin Li */ 66*67e74705SXin Li struct S { 67*67e74705SXin Li /** 68*67e74705SXin Li * \brief iS1; 69*67e74705SXin Li */ 70*67e74705SXin Li int iS1; 71*67e74705SXin Li /** 72*67e74705SXin Li * \brief dS1; 73*67e74705SXin Li */ 74*67e74705SXin Li double dS1; 75*67e74705SXin Li }; 76*67e74705SXin Li // CHECK: <Declaration>struct S {}</Declaration> 77*67e74705SXin Li // CHECK: <Declaration>int iS1</Declaration> 78*67e74705SXin Li // CHECK: <Declaration>double dS1</Declaration> 79*67e74705SXin Li 80*67e74705SXin Li /** 81*67e74705SXin Li * \brief enum e; 82*67e74705SXin Li */ 83*67e74705SXin Li enum e { 84*67e74705SXin Li One, 85*67e74705SXin Li /** 86*67e74705SXin Li * \brief Two; 87*67e74705SXin Li */ 88*67e74705SXin Li Two, 89*67e74705SXin Li Three 90*67e74705SXin Li }; 91*67e74705SXin Li // CHECK: <Declaration>enum e {}</Declaration> 92*67e74705SXin Li // CHECK: <Declaration>Two</Declaration> 93*67e74705SXin Li 94*67e74705SXin Li /** 95*67e74705SXin Li *\brief block declaration 96*67e74705SXin Li */ 97*67e74705SXin Li int (^Block) (int i, int j); 98*67e74705SXin Li // CHECK: <Declaration>int (^Block)(int, int)</Declaration> 99*67e74705SXin Li 100*67e74705SXin Li /** 101*67e74705SXin Li *\brief block declaration 102*67e74705SXin Li */ 103*67e74705SXin Li int (^Block1) (int i, int j) = ^(int i, int j) { return i + j; }; 104*67e74705SXin Li // CHECK: <Declaration>int (^Block1)(int, int) = ^(int i, int j) {\n}</Declaration> 105