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 Levonint 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