urs% cat /tmp/tt.c
#include <stdio.h>
#define STRINGIFY(x) #x
#define PARENT(x) STRINGIFY(x)
#define COMMA_ARG(a,b,c) a+b+c
int main(void) {
printf("Comma: %s\n", PARENT(COMMA_ARG(1,2,3)));
return 0;
}
urs% for c in gcc clang tcc nvc icx antcc ; do $c -E -std=c11 tt.c -o xx.i && echo -n $c" "; $c -dumpversion ; grep Comma: xx.i ; done
gcc 15
printf("Comma: %s\n", "1+2+3");
clang 17.0.6
printf("Comma: %s\n", "1+2+3");
tcc 0.9.28rc
printf("Comma: %s\n", "1+2+3");
nvc 26.1
printf("Comma: %s\n", "1+2+3");
icx 21.1.1
printf("Comma: %s\n", "1+2+3");
antcc 0.1.8
printf("Comma: %s\n", "1 + 2 + 3" );