xref: /aosp_15_r20/external/clang/test/Index/preamble.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li #include "prefix.h"
2*67e74705SXin Li #include "preamble.h"
3*67e74705SXin Li #include "preamble-with-error.h"
4*67e74705SXin Li 
5*67e74705SXin Li #define MACRO_UNUSED 1
6*67e74705SXin Li #define MACRO_USED 2
7*67e74705SXin Li 
8*67e74705SXin Li int wibble(int);
9*67e74705SXin Li 
f(int x)10*67e74705SXin Li void f(int x) {
11*67e74705SXin Li   x = MACRO_USED
12*67e74705SXin Li }
13*67e74705SXin Li // RUN: c-index-test -write-pch %t.pch -x c-header %S/Inputs/prefix.h
14*67e74705SXin Li // RUN: env CINDEXTEST_EDITING=1 c-index-test -test-load-source-reparse 5 local -I %S/Inputs -include %t %s -Wunused-macros 2> %t.stderr.txt | FileCheck %s
15*67e74705SXin Li // RUN: FileCheck -check-prefix CHECK-DIAG %s < %t.stderr.txt
16*67e74705SXin Li // CHECK: preamble.h:1:12: FunctionDecl=bar:1:12 (Definition) Extent=[1:1 - 6:2]
17*67e74705SXin Li // CHECK: preamble.h:4:3: BinaryOperator= Extent=[4:3 - 4:13]
18*67e74705SXin Li // CHECK: preamble.h:4:3: DeclRefExpr=ptr:2:8 Extent=[4:3 - 4:6]
19*67e74705SXin Li // CHECK: preamble.h:4:9: UnexposedExpr=ptr1:3:10 Extent=[4:9 - 4:13]
20*67e74705SXin Li // CHECK: preamble.h:4:9: DeclRefExpr=ptr1:3:10 Extent=[4:9 - 4:13]
21*67e74705SXin Li // CHECK: preamble.h:5:10: IntegerLiteral= Extent=[5:10 - 5:11]
22*67e74705SXin Li // CHECK: preamble.c:8:5: FunctionDecl=wibble:8:5 Extent=[8:1 - 8:16]
23*67e74705SXin Li // CHECK: preamble.c:8:15: ParmDecl=:8:15 (Definition) Extent=[8:12 - 8:15]
24*67e74705SXin Li // CHECK-DIAG: preamble.h:4:7:{4:9-4:13}: warning: incompatible pointer types assigning to 'int *' from 'float *'
25*67e74705SXin Li // FIXME: Should see:
26*67e74705SXin Li //     preamble.c:5:9: warning: macro is not used
27*67e74705SXin Li // CHECK-DIAG-NOT: preamble.c:6:9: warning: macro is not used
28*67e74705SXin Li // RUN: env CINDEXTEST_EDITING=1 c-index-test -code-completion-at=%s:11:1 -I %S/Inputs -include %t %s 2> %t.stderr.txt | FileCheck -check-prefix CHECK-CC %s
29*67e74705SXin Li // CHECK-CC: FunctionDecl:{ResultType int}{TypedText bar}{LeftParen (}{Placeholder int i}{RightParen )} (50)
30*67e74705SXin Li // CHECK-CC: FunctionDecl:{ResultType void}{TypedText f}{LeftParen (}{Placeholder int x}{RightParen )} (50)
31*67e74705SXin Li // CHECK-CC: FunctionDecl:{ResultType int}{TypedText foo}{LeftParen (}{Placeholder int}{RightParen )} (50)
32*67e74705SXin Li // CHECK-CC: FunctionDecl:{ResultType int}{TypedText wibble}{LeftParen (}{Placeholder int}{RightParen )} (50)
33