Since flex-2.6.5 [1] `yyunput` takes a single argument and build fails with: ``` emp_ematch.l:35:69: error: macro ‘yyunput’ passed 2 arguments, but takes just 1 35 | static void __attribute__ ((unused)) yyunput (int c,char *buf_ptr ); | ^ emp_ematch.lex.c:466:9: note: macro ‘yyunput’ defined here 466 | #define yyunput(c) yyunput_r( c, (yytext_ptr) ) | ^~~~~~~ emp_ematch.l:35:39: error: variable or field ‘yyunput’ declared void 35 | static void __attribute__ ((unused)) yyunput (int c,char *buf_ptr ); | ^~~~~~~ emp_ematch.lex.c:1836:13: warning: ‘yyunput_r’ defined but not used [-Wunused-function] 1836 | static void yyunput_r (int c, char * yy_bp ) | ^~~~~~~~~ make[1]: *** [../config.mk:34: emp_ematch.lex.o] Error 1 ``` Use new `YY_NO_YYUNPUT` to silence redefinition warning in this case and skip `__attribute__ ((unused))`. [1] https://github.com/westes/flex/commit/721622ea6e6aaf3aa7e55d939679f21e98b76d86 Signed-off-by: ojab --- tc/emp_ematch.l | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tc/emp_ematch.l b/tc/emp_ematch.l index 2f4926d4..c6fd907e 100644 --- a/tc/emp_ematch.l +++ b/tc/emp_ematch.l @@ -10,6 +10,7 @@ #define NEXT_EM_ARG() do { ematch_argc--; ematch_argv++; } while(0); + #define YY_NO_YYUNPUT 1 #define YY_INPUT(buf, result, max_size) \ { \ next: \ @@ -32,7 +33,9 @@ } \ } - static void __attribute__ ((unused)) yyunput (int c,char *buf_ptr ); + #ifndef yyunput + static void __attribute__ ((unused)) yyunput (int c, char *buf_ptr); + #endif static void __attribute__ ((unused)) yy_push_state (int new_state ); static void __attribute__ ((unused)) yy_pop_state (void); static int __attribute__ ((unused)) yy_top_state (void ); -- 2.53.0