#define XYZ x ## +
XYZ #define XXYZ . ## test
XXYZ
#define a a ## ## // expected-error {{'##' cannot appear at end of macro expansion}}
#define b() b ## ## // expected-error {{'##' cannot appear at end of macro expansion}}
#define c c ## // expected-error {{'##' cannot appear at end of macro expansion}}
#define d() d ## // expected-error {{'##' cannot appear at end of macro expansion}}
#define e ## ## e // expected-error {{'##' cannot appear at start of macro expansion}}
#define f() ## ## f // expected-error {{'##' cannot appear at start of macro expansion}}
#define g ## g // expected-error {{'##' cannot appear at start of macro expansion}}
#define h() ## h // expected-error {{'##' cannot appear at start of macro expansion}}
#define i ## // expected-error {{'##' cannot appear at start of macro expansion}}
#define j() ## // expected-error {{'##' cannot appear at start of macro expansion}}
#pragma GCC poison BLARG
BLARG #define XX BL ## ARG
XX
#define VA __VA_ ## ARGS__
int VA;