#define xCAT(A,B) … #define CAT(A,B) … #undef TYPE #define TYPE … #define xFN(TYPE,NAME) … #define FN(TYPE,NAME) … /* Check that printing "obj" and parsing the output results * in the same expression. */ static isl_stat FN(check_reparse,BASE)(isl_ctx *ctx, __isl_take TYPE *obj) { … }