On 7/25/05, Denis Zaitsev <[EMAIL PROTECTED]> wrote: > Such an example can't be compiled: > > > #include <stdio.h> > > void x() > { > printf(__FUNCTION__ "\n"); > } > > > $ gcc printf.c -o fprintf > printf.c: In function `x': > printf.c:5: error: syntax error before string constant
__FUNCTION__ expands to a variable. Use printf("%s\n", __FUNCTION__); instead. Btw, this list is for the development _of_ gcc, not with gcc. Use gcc-help for that. Richard. > > Then, the problem is not printf-specific and is not depend of > <stdio.h>. The next example gives the same error: > > > void y(const char *f, ...); > void z() > { > y(__FUNCTION__ "\n"); > } > > > If some args are present in the ellipsis section (i.e. y(__FUNCTION__ > ": %s\n", "xxx")), the problem doesn't vanish. And, if __FILE__ is > used instead of __FUNCTION__, the problem is absent. >