| #define A(x) ## x |
| #define B(x) x ## |
| #define C(x) x ## ## ## |
| #define D(x) x#y |
| #define E x#y |
| #define F(x,y) x x##y #x y |
| #define G a##b |
| #define H 1##2 |
| #define I(x,y,z) x y z |
| "A(x)" : A(x) |
| "B(x)" : B(x) |
| "C(x)" : C(x) |
| "D(x)" : D(x) |
| "x#y" : E |
| "ab GH \"G\" 12" : F(G,H) |
| "a ## b" : I(a,##,b) |
| /* |
| * check-name: Preprocessor #8 |
| * check-command: sparse -E $file |
| * |
| * check-output-start |
| |
| "A(x)" : A(x) |
| "B(x)" : B(x) |
| "C(x)" : C(x) |
| "D(x)" : D(x) |
| "x#y" : x#y |
| "ab GH \"G\" 12" : ab GH "G" 12 |
| "a ## b" : a ## b |
| * check-output-end |
| * |
| * check-error-start |
| preprocessor/preprocessor8.c:1:14: error: '##' cannot appear at the ends of macro expansion |
| preprocessor/preprocessor8.c:2:16: error: '##' cannot appear at the ends of macro expansion |
| preprocessor/preprocessor8.c:3:22: error: '##' cannot appear at the ends of macro expansion |
| preprocessor/preprocessor8.c:4:15: error: '#' is not followed by a macro parameter |
| * check-error-end |
| */ |