188b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// RUN: rm -rf %t 288b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// RUN: mkdir %t 388b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// RUN: c-index-test -test-load-source all -comments-xml-schema=%S/../../bindings/xml/comment-xml-schema.rng -target x86_64-apple-darwin10 %s \ 488b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// RUN: | FileCheck %s 588b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian 688b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian/** 788b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian * \brief Aaa. 888b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian*/ 988b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanianint global_function(); 1088b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// CHECK: <Declaration>int global_function()</Declaration> 1188b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian 1288b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian/** 1388b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian * \param x1 Aaa. 1488b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian*/ 1588b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanianextern void external_function(int x1); 1688b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// CHECK: <Declaration>extern void external_function(int x1)</Declaration> 1788b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian 1888b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian/** 1988b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian * \brief global variable; 2088b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian*/ 2188b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanianint global_variable; 2288b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// CHECK: <Declaration>int global_variable</Declaration> 2388b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian 2488b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian/** 2588b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian * \brief local variable; 2688b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian*/ 2788b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanianstatic int static_variable; 2888b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// CHECK: <Declaration>static int static_variable</Declaration> 2988b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian 3088b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian/** 3188b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian * \brief external variable 3288b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian*/ 3388b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanianextern int external_variable; 3488b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// CHECK: <Declaration>extern int external_variable</Declaration> 3588b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian 3688b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanianint global_function() { 3788b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian /** 3888b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian * \brief a local variable 3988b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian */ 4088b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian int local = 10; 4188b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian return local; 4288b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian} 4388b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// CHECK: <Declaration>int global_function()</Declaration> 4488b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// CHECK: <Declaration>int local = 10</Declaration> 4588b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian 4688b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian/** 4788b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian * \brief initialized decl. 4888b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian*/ 4988b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanianint initialized_global = 100; 5088b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// CHECK: <Declaration>int initialized_global = 100</Declaration> 5188b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian 5288b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian/** 5388b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian * \brief typedef example 5488b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian*/ 5588b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahaniantypedef int INT_T; 5688b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// CHECK: <Declaration>typedef int INT_T</Declaration> 5788b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian 5888b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian/** 5988b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian * \brief aggregate type example 6088b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian*/ 6188b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanianstruct S { 6288b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian/** 6388b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian * \brief iS1; 6488b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian*/ 6588b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian int iS1; 6688b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian/** 6788b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian * \brief dS1; 6888b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian*/ 6988b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian double dS1; 7088b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian}; 7136fab8d70eee342d66e03c9b09c029f126196103Manuel Klimek// CHECK: <Declaration>struct S {}</Declaration> 7288b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// CHECK: <Declaration>int iS1</Declaration> 7388b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// CHECK: <Declaration>double dS1</Declaration> 7488b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian 7588b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian/** 7688b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian * \brief enum e; 7788b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian*/ 7888b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanianenum e { 7988b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian One, 8088b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian/** 8188b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian * \brief Two; 8288b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian*/ 8388b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian Two, 8488b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian Three 8588b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian}; 862f1ac41a6d8d202dcc39ab8eb56ccea823dc062eManuel Klimek// CHECK: <Declaration>enum e {}</Declaration> 8788b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian// CHECK: <Declaration>Two</Declaration> 8888b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian 8988b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian/** 9088b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian *\brief block declaration 9188b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian*/ 9288b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanianint (^Block) (int i, int j); 9346ef852618b18bc79e403b37a12c9b692e76126bDaniel Jasper// CHECK: <Declaration>int (^Block)(int, int)</Declaration> 9488b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian 9588b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian/** 9688b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian *\brief block declaration 9788b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanian*/ 9888b9521364735a6c9a7ccd23c5bd19d81a80cdd3Fariborz Jahanianint (^Block1) (int i, int j) = ^(int i, int j) { return i + j; }; 9936fab8d70eee342d66e03c9b09c029f126196103Manuel Klimek// CHECK: <Declaration>int (^Block1)(int, int) = ^(int i, int j) {}</Declaration> 100