xref: /llvm-project/clang/test/Index/Core/index-macros.c (revision 93c87fc06eca8d8a65ff6c0bdd9f2671227224ac)
18c97195cSEric Liu // RUN: c-index-test core -print-source-symbols -- %s | FileCheck %s
2*93c87fc0SBen Langmuir // RUN: c-index-test core -print-source-symbols -ignore-macros -- %s | FileCheck %s -check-prefix=DISABLED
3*93c87fc0SBen Langmuir // DISABLED-NOT: macro/C
4*93c87fc0SBen Langmuir // DISABLED-NOT: XI
58c97195cSEric Liu 
6*93c87fc0SBen Langmuir // CHECK: [[@LINE+1]]:9 | macro/C | X1 | [[X1_USR:.*@macro@X1]] | Def |
78c97195cSEric Liu #define X1 1
8*93c87fc0SBen Langmuir // CHECK: [[@LINE+1]]:9 | macro/C | DEF | [[DEF_USR:.*@macro@DEF]] | Def |
98c97195cSEric Liu #define DEF(x) int x
10*93c87fc0SBen Langmuir // CHECK: [[@LINE+1]]:8 | macro/C | X1 | [[X1_USR]] | Undef |
118c97195cSEric Liu #undef X1
128c97195cSEric Liu 
13*93c87fc0SBen Langmuir // CHECK: [[@LINE+1]]:9 | macro/C | C | [[C_USR:.*@macro@C]] | Def |
14*93c87fc0SBen Langmuir #define C 1
15*93c87fc0SBen Langmuir // CHECK: [[@LINE+1]]:5 | macro/C | C | [[C_USR]] | Ref |
16*93c87fc0SBen Langmuir #if C
17*93c87fc0SBen Langmuir #endif
18*93c87fc0SBen Langmuir // CHECK: [[@LINE+1]]:8 | macro/C | C | [[C_USR]] | Ref |
19*93c87fc0SBen Langmuir #ifdef C
20*93c87fc0SBen Langmuir #endif
21*93c87fc0SBen Langmuir // CHECK: [[@LINE+1]]:9 | macro/C | C | [[C_USR]] | Ref |
22*93c87fc0SBen Langmuir #ifndef C
23*93c87fc0SBen Langmuir #endif
24*93c87fc0SBen Langmuir // CHECK: [[@LINE+1]]:13 | macro/C | C | [[C_USR]] | Ref |
25*93c87fc0SBen Langmuir #if defined(C)
26*93c87fc0SBen Langmuir #endif
27*93c87fc0SBen Langmuir // CHECK: [[@LINE+1]]:14 | macro/C | C | [[C_USR]] | Ref |
28*93c87fc0SBen Langmuir #if !defined(C)
29*93c87fc0SBen Langmuir #endif
30*93c87fc0SBen Langmuir 
31*93c87fc0SBen Langmuir // Nonexistent macros should not be included.
32*93c87fc0SBen Langmuir // CHECK-NOT: NOT_DEFINED
33*93c87fc0SBen Langmuir #ifdef NOT_DEFINED
34*93c87fc0SBen Langmuir #endif
35*93c87fc0SBen Langmuir #ifndef NOT_DEFINED
36*93c87fc0SBen Langmuir #endif
37*93c87fc0SBen Langmuir #if defined(NOT_DEFINED) && NOT_DEFINED
38*93c87fc0SBen Langmuir #elif !defined(NOT_DEFINED)
39*93c87fc0SBen Langmuir #endif
40*93c87fc0SBen Langmuir 
41*93c87fc0SBen Langmuir // CHECK: [[@LINE+1]]:5 | macro/C | __LINE__ | c:@macro@__LINE__ | Ref |
42*93c87fc0SBen Langmuir #if __LINE__ == 41
43*93c87fc0SBen Langmuir #endif
44*93c87fc0SBen Langmuir 
45*93c87fc0SBen Langmuir // CHECK: [[@LINE+2]]:1 | macro/C | DEF | [[DEF_USR]] | Ref |
4616958bb6SEric Liu // CHECK: [[@LINE+1]]:5 | variable/C | i | c:@i | {{.*}} | Def | rel: 0
478c97195cSEric Liu DEF(i);
48