1*c85f09ccSJohn Levon 
2*c85f09ccSJohn Levon #define ABC abc
3*c85f09ccSJohn Levon #undef ABC
4*c85f09ccSJohn Levon 
5*c85f09ccSJohn Levon #define	DEF def
6*c85f09ccSJohn Levon #undef DEF
7*c85f09ccSJohn Levon #define DEF xyz
8*c85f09ccSJohn Levon 
9*c85f09ccSJohn Levon #define NYDEF ydef
10*c85f09ccSJohn Levon 
11*c85f09ccSJohn Levon #define STRING(x) #x
12*c85f09ccSJohn Levon #define CONCAT(x,y) x ## y
13*c85f09ccSJohn Levon 
14*c85f09ccSJohn Levon #define unlocks(...) annotate(unlock_func(__VA_ARGS__))
15*c85f09ccSJohn Levon #define apply(x,...) x(__VA_ARGS__)
16*c85f09ccSJohn Levon 
main(int argc,char * argv[])17*c85f09ccSJohn Levon int main(int argc, char *argv[])
18*c85f09ccSJohn Levon {
19*c85f09ccSJohn Levon 	return 0;
20*c85f09ccSJohn Levon }
21*c85f09ccSJohn Levon /*
22*c85f09ccSJohn Levon  * check-name: dump-macros only -dM
23*c85f09ccSJohn Levon  * check-command: sparse -E -dM -DIJK=ijk -UNDEF -UNYDEF $file
24*c85f09ccSJohn Levon  *
25*c85f09ccSJohn Levon  * check-output-ignore
26*c85f09ccSJohn Levon check-output-pattern(1): #define __CHECKER__ 1
27*c85f09ccSJohn Levon check-output-contains: #define IJK ijk
28*c85f09ccSJohn Levon check-output-contains: #define DEF xyz
29*c85f09ccSJohn Levon check-output-contains: #define NYDEF ydef
30*c85f09ccSJohn Levon check-output-contains: #define STRING(x) #x
31*c85f09ccSJohn Levon check-output-contains: #define CONCAT(x,y) x ## y
32*c85f09ccSJohn Levon check-output-contains: #define unlocks(...) annotate(unlock_func(__VA_ARGS__))
33*c85f09ccSJohn Levon check-output-contains: #define apply(x,...) x(__VA_ARGS__)
34*c85f09ccSJohn Levon check-output-excludes: int main(int argc, char \\*argv\\[\\])
35*c85f09ccSJohn Levon check-output-excludes: ^\\[^#]
36*c85f09ccSJohn Levon  */
37