1 struct Point {
2   float x;
3   float y;
4   float z;
5 };
6 
7 void test(struct Point *p) {
8   p->
9   // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:8:6 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s
10   // CHECK-CC1: x
11   // CHECK-CC1: y
12   // CHECK-CC1: z
13 }
14 
15 struct Point2 {
16   float x;
17 };
18 
19 void test2(struct Point2 p) {
20   p->
21 }
22 
23 void test3(struct Point2 *p) {
24   p.
25 }
26 
27 // RUN: %clang_cc1 -fsyntax-only -code-completion-with-fixits -code-completion-at=%s:20:6 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s
28 // CHECK-CC2: x (requires fix-it: {20:4-20:6} to ".")
29 
30 // RUN: %clang_cc1 -fsyntax-only -code-completion-with-fixits -code-completion-at=%s:24:5 %s -o - | FileCheck -check-prefix=CHECK-CC3 %s
31 // CHECK-CC3: x (requires fix-it: {24:4-24:5} to "->")
32 
33 void test4(struct Point *p) {
34   (int)(p)->x;
35   (int)(0,1,2,3,4,p)->x;
36 }
37 // RUN: %clang_cc1 -fsyntax-only -code-completion-with-fixits -code-completion-at=%s:34:13 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s
38 // RUN: %clang_cc1 -fsyntax-only -code-completion-with-fixits -code-completion-at=%s:35:23 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s
39