comment-c-decls.c 2.1 KB

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