file-refs.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. enum {
  2. VALUE = 3
  3. };
  4. extern int glob_x;
  5. int f(int x) {
  6. return x+glob_x+VALUE;
  7. }
  8. typedef struct {
  9. int x;
  10. int y;
  11. } Vector;
  12. int vector_get_x(Vector v) {
  13. int x = v.x;
  14. return x;
  15. }
  16. int f(int);
  17. int f(int);
  18. // RUN: c-index-test \
  19. // RUN: -file-refs-at=%s:2:5 \
  20. // CHECK: EnumConstantDecl=VALUE:2:3 (Definition)
  21. // CHECK-NEXT: EnumConstantDecl=VALUE:2:3 (Definition) =[2:3 - 2:8]
  22. // CHECK-NEXT: DeclRefExpr=VALUE:2:3 =[8:19 - 8:24]
  23. // RUN: -file-refs-at=%s:8:15 \
  24. // CHECK-NEXT: DeclRefExpr=glob_x:5:12
  25. // CHECK-NEXT: VarDecl=glob_x:5:12 =[5:12 - 5:18]
  26. // CHECK-NEXT: DeclRefExpr=glob_x:5:12 =[8:12 - 8:18]
  27. // RUN: -file-refs-at=%s:8:10 \
  28. // CHECK-NEXT: DeclRefExpr=x:7:11
  29. // CHECK-NEXT: ParmDecl=x:7:11 (Definition) =[7:11 - 7:12]
  30. // CHECK-NEXT: DeclRefExpr=x:7:11 =[8:10 - 8:11]
  31. // RUN: -file-refs-at=%s:12:7 \
  32. // CHECK-NEXT: FieldDecl=x:12:7 (Definition)
  33. // CHECK-NEXT: FieldDecl=x:12:7 (Definition) =[12:7 - 12:8]
  34. // CHECK-NEXT: MemberRefExpr=x:12:7 {{.*}} =[17:13 - 17:14]
  35. // RUN: -file-refs-at=%s:16:21 \
  36. // CHECK-NEXT: TypeRef=Vector:14:3
  37. // CHECK-NEXT: TypedefDecl=Vector:14:3 (Definition) =[14:3 - 14:9]
  38. // CHECK-NEXT: TypeRef=Vector:14:3 =[16:18 - 16:24]
  39. // RUN: -file-refs-at=%s:21:5 \
  40. // CHECK-NEXT: FunctionDecl=f:21:5
  41. // CHECK-NEXT: FunctionDecl=f:7:5 (Definition) =[7:5 - 7:6]
  42. // CHECK-NEXT: FunctionDecl=f:21:5 =[21:5 - 21:6]
  43. // CHECK-NEXT: FunctionDecl=f:22:5 =[22:5 - 22:6]
  44. // RUN: %s | FileCheck %s