2012-12-05 05:15:23 +08:00
|
|
|
// 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;
|
|
|
|
};
|
2013-01-10 21:24:24 +08:00
|
|
|
// CHECK: <Declaration>struct S {}</Declaration>
|
2012-12-05 05:15:23 +08:00
|
|
|
// CHECK: <Declaration>int iS1</Declaration>
|
|
|
|
// CHECK: <Declaration>double dS1</Declaration>
|
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief enum e;
|
|
|
|
*/
|
|
|
|
enum e {
|
|
|
|
One,
|
|
|
|
/**
|
|
|
|
* \brief Two;
|
|
|
|
*/
|
|
|
|
Two,
|
|
|
|
Three
|
|
|
|
};
|
2013-01-22 00:42:44 +08:00
|
|
|
// CHECK: <Declaration>enum e {}</Declaration>
|
2012-12-05 05:15:23 +08:00
|
|
|
// CHECK: <Declaration>Two</Declaration>
|
|
|
|
|
|
|
|
/**
|
|
|
|
*\brief block declaration
|
|
|
|
*/
|
|
|
|
int (^Block) (int i, int j);
|
2013-01-10 21:08:12 +08:00
|
|
|
// CHECK: <Declaration>int (^Block)(int, int)</Declaration>
|
2012-12-05 05:15:23 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
*\brief block declaration
|
|
|
|
*/
|
|
|
|
int (^Block1) (int i, int j) = ^(int i, int j) { return i + j; };
|
2013-01-10 21:24:24 +08:00
|
|
|
// CHECK: <Declaration>int (^Block1)(int, int) = ^(int i, int j) {}</Declaration>
|