Strange behaviour gcc 3.0

Alexandre Oliva aoliva@redhat.com
Wed Aug 1 05:32:00 GMT 2001


On Aug  1, 2001, Igmar Palsenberg <i.palsenberg@jdimedia.nl> wrote:

>         printf("bogus"
> #ifdef TEST
>         "testing"
> #endif
>         );

> [root@wrkst SPECS]# gcc -O2 -o x x.c
> x.c:7:1: directives may not be used inside a macro argument
> x.c:7:1: unterminated argument list invoking macro "printf"
> x.c: In function `main':
> x.c:10: parse error before ')' token

> Code didn't change. This really strikes me.. Anyone can comment on this ??

printf is a macro (don't ask me why; it's a glibc implementation
detail that is authorized by the C Standard), and there can't be
preprocessor directives inside a macro argument list.

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                  aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist    *Please* write to mailing lists, not to me



More information about the Gcc-bugs mailing list