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