Home | History | Annotate | Download | only in Index
      1 struct Point {
      2   float x;
      3   float y;
      4   float z;
      5 };
      6 
      7 #define MACRO2(x) x
      8 #define MACRO(x) MACRO2(x)
      9 
     10 void test(struct Point *p) {
     11         p->x;
     12   MACRO(p->x);
     13 }
     14 
     15 #define MACRO3(x,y,z) x;y;z
     16 
     17 void test2(struct Point *p) {
     18   MACRO3(p->x);
     19   MACRO3(p->x
     20 }
     21 
     22 #define FM(x) x
     23 void test3(struct Point *p) {
     24   FM(p->x, a);
     25 }
     26 
     27 #define VGM(...) 0
     28 #define VGM2(...) __VA_ARGS__
     29 
     30 // These need to be last, to test proper handling of EOF.
     31 #ifdef EOF_TEST1
     32 void test3(struct Point *p) {
     33   VGM(1,2, p->x
     34 
     35 #elif EOF_TEST2
     36 void test3(struct Point *p) {
     37   VGM2(VGM(1,2, p->x
     38 
     39 #endif
     40 
     41 // RUN: c-index-test -code-completion-at=%s:11:12 %s | FileCheck %s
     42 // RUN: c-index-test -code-completion-at=%s:12:12 %s | FileCheck %s
     43 // RUN: c-index-test -code-completion-at=%s:18:13 %s | FileCheck %s
     44 // RUN: c-index-test -code-completion-at=%s:19:13 %s | FileCheck %s
     45 // RUN: c-index-test -code-completion-at=%s:24:9 %s | FileCheck %s
     46 // CHECK:      FieldDecl:{ResultType float}{TypedText x} (35)
     47 // CHECK-NEXT: FieldDecl:{ResultType float}{TypedText y} (35)
     48 // CHECK-NEXT: FieldDecl:{ResultType float}{TypedText z} (35)
     49 // CHECK-NEXT: Completion contexts:
     50 // CHECK-NEXT: Arrow member access
     51 // CHECK-NEXT: Container Kind: StructDecl
     52 
     53 // With these, code-completion is unknown because the macro argument (and the
     54 // completion point) is not expanded by the macro definition.
     55 // RUN: c-index-test -code-completion-at=%s:33:15 %s -DEOF_TEST1 | FileCheck %s -check-prefix=CHECK-EOF
     56 // RUN: c-index-test -code-completion-at=%s:37:20 %s -DEOF_TEST2 | FileCheck %s -check-prefix=CHECK-EOF
     57 // CHECK-EOF: Completion contexts:
     58 // CHECK-EOF: Unknown
     59