ctf: define yystrlen to strlen
Building with -Wnull-dereference on cygwin gives:
LEX lexer.c
CC libctf_parser_la-lexer.lo
CC libctf_parser_la-parser.lo
parser.c: In function ‘yysyntax_error’:
parser.c:2566:24: error: potential null pointer dereference [-Werror=null-dereference]
for (yylen = 0; yystr[yylen]; yylen++)
~~~~~^~~~~~~
For some reason, the conditional used by bison to define yystrlen makes
it so that cygwin uses the bison-provided version instead of strlen:
# ifndef yystrlen
# if defined __GLIBC__ && defined _STRING_H
# define yystrlen strlen
# else
/* Return the length of YYSTR. */
static YYSIZE_T
yystrlen (const char *yystr)
{
YYSIZE_T yylen;
for (yylen = 0; yystr[yylen]; yylen++)
continue;
return yylen;
}
# endif
# endif
Actually, probably because cygwin's string.h uses _STRING_H_ instead of
_STRING_H as its include guard.
As far as I know, strlen on cygwin (and on all the platforms we target)
is reliable. So we can bypass this by defining yystrlen to strlen
directly.
Change-Id: I08a5d99a164e4e4f2cf44236be0ece94e16e7c57
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/2276
Reviewed-by: Francis Deslauriers <francis.deslauriers@efficios.com>
This page took 0.027527 seconds and 4 git commands to generate.