Package: flex
Version: 2.5.35
When using with cygwin 1.7.9-1 and MSVC2008 there is a minor bug in building
YY_INPUT macro. MSVC2008 defines size_t as unsigned integer, while YY_INPUT
code has a comparison with signed type (scan.c:2108, in red):
#ifndef YY_INPUT
#define
YY_INPUT(buf,result,max_size) \
if (
YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
int n; \
for ( n = 0; n <
max_size && \
(c =
getc( yyin )) != EOF && c != '\n';
++n ) \
buf[n] = (char) c; \
if ( c == '\n' ) \
buf[n++] = (char)
c; \
if ( c == EOF &&
ferror( yyin ) ) \
YY_FATAL_ERROR( "input
in flex scanner failed" ); \
result = n; \
} \
else \
{ \
errno=0; \
while ( (result =
fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
{ \
if( errno != EINTR)
\
{ \
YY_FATAL_ERROR( "input
in flex scanner failed" ); \
break; \
} \
errno=0; \
clearerr(yyin); \
} \
}\
\
#endif
There is a warning "C4018: '<' : signed/unsigned mismatch" generated at line
4325: /* Read in more data. */
YY_INPUT(
(&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
(yy_n_chars), (size_t) num_to_read );
Thanks,Yuriy.