--- t.c --- #define NULL ((void *)0L) void debug_Error(char *expr, char *fmt, ...) { } #define Error(expr, message...)\ ((expr) ? 0 : (debug_Error( #expr, __FILE__, __LINE__, __PRETTY_FUNCTION__, 1 , ## message, NULL), 1)) int main(int argc, char **argv) { Error(0, "URL data has invalid (not hexadecimal) value."); } --- end of t.c --- Compiling this test program gives the warning t.c:9:61: warning: pasting would not give a valid preprocessing token Works fine without a warning in GCC 2.95.2 (SuSE 7.0) and EGCS 2.91.66 (RedHat 6.2) rpm -q gcc gcc-2.96-54
This is fixed since I think cpp-2.96-55 (definitely in rawhide current cpp packages).