----- Original message -----
On 08/13/2012 08:30 PM, Balazs Scheidler wrote:
----- Original message -----
Greetings!
I am having some difficulties compiling current master (at the time of this writing) of syslog-ng 3.4. The first error is this:
filter-expr-parser.c:30:5: error: conflicting types for 'filter_expr_parse' In file included from filter-expr-parser.c:27:0: filter-expr-grammar.h:404:5: note: previous declaration of 'filter_expr_parse' was here make[4]: *** [filter-expr-parser.lo] Error
Now, at first I thought, since filter-expr-grammar.h is generated, it might have something to do with my bison version or the likes. But then I realized that the offending declaration in filter-expr-parser.c:30:
int filter_expr_parse(CfgLexer *lexer, FilterExprNode **node);
directly contradicts its use int the same file below (line 74):
.parse = (gint (*)(CfgLexer *, gpointer *, gpointer)) filter_expr_parse,
filter-expr-parser.c is not generated, so I don't quite get how this compiles at all for anyone? Am I missing something?
The actual usage (line 74) matches the generated declaration, so I can just comment out the offending one in line 30. But I suspect this it not how it's supposed to work...
Same thing happens for parser-expr-parser and rewrite-expr-parser...
hm. earlier bison versions didn't declare the parse function. I can't remember warnings either, but I'll have to check the code.
I am using bison 2.6.2, if this information is of any value...
But still, doesn't the declaration contradict the call below anyways (third parameter)?
these are only called through the pointer, iirc they really only have two params, but I don't know why I haven't seen warnings before.