yacc.c: work around warnings from G++ 4.8

input.c: In function 'int yyparse()':
input.c: error: conversion to 'long int' from 'long unsigned int'
                may change the sign of the result [-Werror=sign-conversion]
   yyes_capacity = sizeof yyesa / sizeof *yyes;
                                ^
cc1plus: all warnings being treated as errors

* data/skeletons/yacc.c: here.
This commit is contained in:
Akim Demaille
2019-10-05 22:51:16 +02:00
parent 5973d763c0
commit 32e5a91a91
2 changed files with 23 additions and 4 deletions

19
TODO
View File

@@ -128,6 +128,25 @@ Rename these guys as "diagnostics.*" (or "diagnose.*"), since that's the
name they have in gcc, clang, etc. Likewise for the complain_* series of
functions.
* Modernization
Remove some casts made for old compilers, such as Clang++ 3.3 and 3.4 when
compiling yacc.c code:
YYPTRDIFF_T yysize = (YYPTRDIFF_T) (yyssp - yyss + 1);
YYPTRDIFF_T yysize_old =
*yytop == yytop_empty ? 0 : (YYPTRDIFF_T) (*yytop - *yybottom + 1);
YYPTRDIFF_T yysize = (YYPTRDIFF_T) (yyesp - *yyes + 1);
Or G++ 4.8
yyes_capacity = (YYPTRDIFF_T) (sizeof yyesa / sizeof *yyes);
Or GCC 4.8
int input_elts = (int) (sizeof input / sizeof input[0]);
* Completion
Several features are not available in all the backends.