Skip to contentSkip to conversation

gcc-3.4.5-20050531 (i386): __FUNCTION__ as a part of the printf's format argument

BUG Denis Zaitsev 1 participant 1 message Jul 25, 2005

lore
Share & tools
lore
#0 lore raw

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

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.