1 #define A(x) ## x 2 #define B(x) x ## 3 #define C(x) x ## ## ## 4 #define D(x) x#y 5 #define E x#y 6 #define F(x,y) x x##y #x y 7 #define G a##b 8 #define H 1##2 9 #define I(x,y,z) x y z 10 "A(x)" : A(x) 11 "B(x)" : B(x) 12 "C(x)" : C(x) 13 "D(x)" : D(x) 14 "x#y" : E 15 "ab GH \"G\" 12" : F(G,H) 16 "a ## b" : I(a,##,b) 17 /* 18 * check-name: Preprocessor #8 19 * check-command: sparse -E $file 20 * 21 * check-output-start 22 23 "A(x)" : A(x) 24 "B(x)" : B(x) 25 "C(x)" : C(x) 26 "D(x)" : D(x) 27 "x#y" : x#y 28 "ab GH \"G\" 12" : ab GH "G" 12 29 "a ## b" : a ## b 30 * check-output-end 31 * 32 * check-error-start 33 preprocessor/preprocessor8.c:1:14: error: '##' cannot appear at the ends of macro expansion 34 preprocessor/preprocessor8.c:2:16: error: '##' cannot appear at the ends of macro expansion 35 preprocessor/preprocessor8.c:3:22: error: '##' cannot appear at the ends of macro expansion 36 preprocessor/preprocessor8.c:4:15: error: '#' is not followed by a macro parameter 37 * check-error-end 38 */ 39