> > Jeremy Drake <[EMAIL PROTECTED]> writes: > > > The errors I got on this file were: > > > 1>bootparse.tab.c(1065) : error C2449: found '{' at file scope > > > 1>(missing function header?) > > > > I looked at this. Line 1065 is the left brace starting > yyparse(). On > > my Fedora Core 5 box with Bison 2.1 installed, the stuff > leading up to > > it is > > > > #ifdef YYPARSE_PARAM > > ... some uninteresting stuff, since we don't define > YYPARSE_PARAM ... > > #else /* ! YYPARSE_PARAM */ > > #if defined (__STDC__) || defined (__cplusplus) int yyparse (void) > > #else int yyparse () > > > > #endif > > #endif > > { > > > > But lookee here, your Windows-built version has > > > > #ifdef YYPARSE_PARAM > > ... > > #else /* ! YYPARSE_PARAM */ > > #if defined (__STDC__) || defined (__cplusplus) int yyparse (void) > > #else int yyparse () > > ; > > #endif > > #endif > > { > > > > So that semicolon is the source of the trouble. That's clearly a > > bison bug, and in fact digging in Red Hat's SRPM shows that > they are > > carrying a patch for it: > > > > 2005-10-05 Paul Eggert <[EMAIL PROTECTED]> > > > > * data/m4sugar/m4sugar.m4 (_m4_map): New macro. > > (m4_map, m4_map_sep): Use it. Handle the empty list correctly. > > > <snip patch> > > > > Presumably bison 2.2 includes this fix. But I guess the > real question > > is why the devil doesn't MSVC define __STDC__ ? Are they that far > > removed from spec compliance? > > In the bison 2.2 generated code, the #if check is > > #if (defined __STDC__ || defined __C99__FUNC__ \ > || defined __cplusplus || defined _MSC_VER) > > which looks like they figured out that they needed to check > for MicroSoft C explicitly. I have no idea why they do not > define __STDC__ however.
Can we just define __STDC__ when compiling that file (or rather, when compiling any bison-generated output file)? Or is that likely to cause *other* issues? //Magnus ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match