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