On Monday 29 August 2005 11:57 am, Philipp Thomas wrote:
No, this IMHO is just sloppy programming. Maybe the definition of stderr was somehow pulled in indirectly in former times, which won't work nowadys as glibc headers were carefully changed to only pull in what they really need and not complete headers.
True. The ISO C and C++ standards define what gets defined in the specific header files (in this case stdio.h). In this particular case, the offending file is parser.y, which is a yacc (bison) file that generates parser.c. the yyerror() function exists by default, but it is generally recommended that the user supply their own. The yacc(1) manpage has an example with #include <stdio.h>.