mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-22 18:53:04 +00:00
Prefer signed types for indexes in skeletons
* NEWS: Mention this. * data/skeletons/c.m4 (b4_int_type): Prefer char if it will do, and prefer signed types to unsigned if either will do. * data/skeletons/glr.c (yy_reduce_print): No need to convert rule line to unsigned long. (yyrecoverSyntaxError): Put action into an int to avoid GCC warning of using a char subscript. * data/skeletons/lalr1.cc (yy_lac_check_, yysyntax_error_): Prefer ptrdiff_t to size_t. * data/skeletons/yacc.c (b4_int_type): Prefer signed types to unsigned if either will do. * data/skeletons/yacc.c (b4_declare_parser_state_variables): (YYSTACK_RELOCATE, YYCOPY, yy_lac_stack_realloc, yy_lac) (yytnamerr, yysyntax_error, yyparse): Prefer ptrdiff_t to size_t. (YYPTRDIFF_T, YYPTRDIFF_MAXIMUM): New macros. (YYSIZE_T): Fix "! defined YYSIZE_T" typo. (YYSIZE_MAXIMUM): Take the minimum of PTRDIFF_MAX and SIZE_MAX. (YYSIZEOF): New macro. (YYSTACK_GAP_MAXIMUM, YYSTACK_BYTES, YYSTACK_RELOCATE) (yy_lac_stack_realloc, yyparse): Use it. (YYCOPY, yy_lac_stack_realloc): Cast to YYSIZE_T to pacify GCC. (yy_reduce_print): Use int instead of unsigned long when int will do. (yy_lac_stack_realloc): Prefer long to unsigned long when either will do. * tests/regression.at: Adjust to these changes.
This commit is contained in:
committed by
Akim Demaille
parent
2ca6b71967
commit
4d9ff272cf
@@ -167,16 +167,16 @@ b4_parse_param_for([Decl], [Formal], [ YYUSE (Formal);
|
||||
|
||||
# b4_int_type(MIN, MAX)
|
||||
# ---------------------
|
||||
# Return the smallest int type able to handle numbers ranging from
|
||||
# MIN to MAX (included).
|
||||
# Return a narrow int type able to handle integers ranging from MIN
|
||||
# to MAX (included) in portable C code. Assume MIN and MAX fall in
|
||||
# 'int' range.
|
||||
m4_define([b4_int_type],
|
||||
[m4_if(b4_ints_in($@, [0], [255]), [1], [unsigned char],
|
||||
b4_ints_in($@, [-128], [127]), [1], [signed char],
|
||||
[m4_if(b4_ints_in($@, [0], [127]), [1], [char],
|
||||
b4_ints_in($@, [-127], [127]), [1], [signed char],
|
||||
b4_ints_in($@, [0], [255]), [1], [unsigned char],
|
||||
|
||||
b4_ints_in($@, [-32767], [32767]), [1], [short],
|
||||
b4_ints_in($@, [0], [65535]), [1], [unsigned short],
|
||||
b4_ints_in($@, [-32768], [32767]), [1], [short],
|
||||
|
||||
m4_eval([0 <= $1]), [1], [unsigned],
|
||||
|
||||
[int])])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user