Fwiw some of these can be solved either by using `%define parse.error detailed` instead of `%define parse.error verbose`, which requires Bison 3.6 (2020-05-08), or removing `%define parse.error` entirely as some of the parsers do. The yynerrs one is more annoying but can also be solved by implicitly passing it to the error callback, like (with more changes a bit here and there where the function is called directly). ```diff +#define parser_error(a,b) parser_error_(a, b, parser_nerrs) extern void parser_warning( const struct location *where, const char *message ); -extern void parser_error( const struct location *where, const char *message ); +extern void parser_error_( const struct location *where, const char *message, int error_count ); ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5704#note_71204