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