15c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidisstruct Point {
25c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis  float x;
35c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis  float y;
45c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis  float z;
55c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis};
65c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis
75c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis#define MACRO2(x) x
85c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis#define MACRO(x) MACRO2(x)
95c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis
105c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidisvoid test(struct Point *p) {
115c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis        p->x;
125c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis  MACRO(p->x);
135c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis}
145c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis
155c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis// RUN: c-index-test -code-completion-at=%s:11:12 %s | FileCheck %s
165c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis// RUN: c-index-test -code-completion-at=%s:12:12 %s | FileCheck %s
175c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis// CHECK:      FieldDecl:{ResultType float}{TypedText x} (35)
185c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis// CHECK-NEXT: FieldDecl:{ResultType float}{TypedText y} (35)
195c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis// CHECK-NEXT: FieldDecl:{ResultType float}{TypedText z} (35)
205c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis// CHECK-NEXT: Completion contexts:
215c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis// CHECK-NEXT: Arrow member access
225c5f03e4020e90b9760ec547962ba02b029cc359Argyrios Kyrtzidis// CHECK-NEXT: Container Kind: StructDecl
23