complete-exprs.c 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // Note: the run lines follow their respective tests, since line/column
  2. // matter in this test.
  3. int f(int) __attribute__((unavailable));
  4. int test(int i, int j, int k, int l) {
  5. return i | j | k & l;
  6. }
  7. struct X __attribute__((deprecated)) f1 = { 17 };
  8. void f2() { f1(17); }
  9. const char *str = "Hello, \nWorld";
  10. void f3(const char*, ...) __attribute__((sentinel(0)));
  11. #define NULL __null
  12. void f4(const char* str) {
  13. f3(str, NULL);
  14. }
  15. typedef int type;
  16. void f5(float f) {
  17. (type)f;
  18. }
  19. // RUN: c-index-test -code-completion-at=%s:7:9 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC1 %s
  20. // RUN: env CINDEXTEST_EDITING=1 CINDEXTEST_COMPLETION_CACHING=1 c-index-test -code-completion-at=%s:7:9 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC1 %s
  21. // CHECK-CC1: NotImplemented:{TypedText __PRETTY_FUNCTION__} (65)
  22. // CHECK-CC1: macro definition:{TypedText __VERSION__} (70)
  23. // CHECK-CC1: FunctionDecl:{ResultType int}{TypedText f}{LeftParen (}{Placeholder int}{RightParen )} (12) (unavailable)
  24. // CHECK-CC1-NOT: NotImplemented:{TypedText float} (65)
  25. // CHECK-CC1: ParmDecl:{ResultType int}{TypedText j} (8)
  26. // CHECK-CC1: NotImplemented:{ResultType size_t}{TypedText sizeof}{LeftParen (}{Placeholder expression-or-type}{RightParen )} (40)
  27. // RUN: env CINDEXTEST_EDITING=1 CINDEXTEST_COMPLETION_CACHING=1 c-index-test -code-completion-at=%s:7:9 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC1 %s
  28. // RUN: c-index-test -code-completion-at=%s:7:14 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC3 %s
  29. // RUN: env CINDEXTEST_EDITING=1 CINDEXTEST_COMPLETION_CACHING=1 c-index-test -code-completion-at=%s:7:14 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC3 %s
  30. // CHECK-CC3: macro definition:{TypedText __VERSION__} (70)
  31. // CHECK-CC3: FunctionDecl:{ResultType int}{TypedText f}{LeftParen (}{Placeholder int}{RightParen )} (50)
  32. // CHECK-CC3-NOT: NotImplemented:{TypedText float}
  33. // CHECK-CC3: ParmDecl:{ResultType int}{TypedText j} (34)
  34. // CHECK-CC3: NotImplemented:{ResultType size_t}{TypedText sizeof}{LeftParen (}{Placeholder expressio
  35. // RUN: c-index-test -code-completion-at=%s:7:18 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC3 %s
  36. // RUN: c-index-test -code-completion-at=%s:7:22 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC3 %s
  37. // RUN: c-index-test -code-completion-at=%s:7:2 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC2 %s
  38. // CHECK-CC2: macro definition:{TypedText __VERSION__} (70)
  39. // CHECK-CC2: FunctionDecl:{ResultType int}{TypedText f}{LeftParen (}{Placeholder int}{RightParen )} (50)
  40. // CHECK-CC2: NotImplemented:{TypedText float} (50)
  41. // CHECK-CC2: ParmDecl:{ResultType int}{TypedText j} (34)
  42. // CHECK-CC2: NotImplemented:{ResultType size_t}{TypedText sizeof}{LeftParen (}{Placeholder expression-or-type}{RightParen )} (40)
  43. // RUN: c-index-test -code-completion-at=%s:11:16 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC4 %s
  44. // CHECK-CC4: FunctionDecl:{ResultType int}{TypedText f}{LeftParen (}{Placeholder int}{RightParen )} (50)
  45. // CHECK-CC4: VarDecl:{ResultType struct X}{TypedText f1} (50) (deprecated)
  46. // RUN: c-index-test -code-completion-at=%s:19:3 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC6 %s
  47. // CHECK-CC6: FunctionDecl:{ResultType void}{TypedText f3}{LeftParen (}{Placeholder const char *, ...}{Text , NULL}{RightParen )} (50)
  48. // CHECK-CC6: NotImplemented:{TypedText void} (50)
  49. // CHECK-CC6: NotImplemented:{TypedText volatile} (50)
  50. // RUN: c-index-test -code-completion-at=%s:24:4 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC7 %s
  51. // RUN: env CINDEXTEST_EDITING=1 CINDEXTEST_COMPLETION_CACHING=1 c-index-test -code-completion-at=%s:24:4 -Xclang -code-completion-patterns %s | FileCheck -check-prefix=CHECK-CC7 %s
  52. // CHECK-CC7: ParmDecl:{ResultType float}{TypedText f} (34)
  53. // CHECK-CC7: VarDecl:{ResultType struct X}{TypedText f1} (50) (deprecated)
  54. // CHECK-CC7: FunctionDecl:{ResultType void}{TypedText f2}{LeftParen (}{RightParen )} (50)
  55. // CHECK-CC7: FunctionDecl:{ResultType void}{TypedText f3}{LeftParen (}{Placeholder const char *, ...}{Text , NULL}{RightParen )} (50)
  56. // CHECK-CC7: FunctionDecl:{ResultType void}{TypedText f4}{LeftParen (}{Placeholder const char *str}{RightParen )} (50)
  57. // CHECK-CC7: FunctionDecl:{ResultType void}{TypedText f5}{LeftParen (}{Placeholder float f}{RightParen )} (50)
  58. // CHECK-CC7: TypedefDecl:{TypedText type} (50)