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