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 <redacted>
---
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