summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2019-10-05 13:06:40 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2019-10-07 00:08:19 -0700
commit5463291a915ce89d0d807c11859d2750ab59de9e (patch)
tree5fdbb3a6b05f57532c23ffbdcd323a0835865705 /src
parent6373b90fc8f9ab2bfa19a107d44cfad3404faf20 (diff)
downloadbison-5463291a915ce89d0d807c11859d2750ab59de9e.tar.gz
Use “least” types for integers in Yacc tables
This changes the Yacc skeleton to use “least” integer types to keep tables smaller on some platforms, which should lessen cache pressure. Since Bison uses the Yacc skeleton, it follows suit. * data/skeletons/yacc.c: Include limits.h and stdint.h if this seems to be needed. (yytype_uint8, yytype_int8, yytype_uint16, yytype_int16): If available, use GCC predefined macros __INT_MAX__ etc. to select a “least” type, as this avoids namespace hassles. Otherwise, if available fall back on selecting a “least” type via the C99 macros INT_MAX, INT_LEAST8_MAX, etc. Otherwise, fall further back on one of the builtin C99 types signed char, short, and int. Make sure that any selected type promotes to int. Ignore any macros YYTYPE_INT16, YYTYPE_INT8, YYTYPE_UINT16, YYTYPE_UINT8 defined by the user. (ptrdiff_t, PTRDIFF_MAX): Simplify in the light of the above. (yytype_uint8, yytype_uint16): Do not assume that unsigned char and unsigned short promote to int, as this isn’t true on some platforms (e.g., TI TMS320C55x). * src/parse-gram.y (YYTYPE_INT16, YYTYPE_INT8, YYTYPE_UINT16) (YYTYPE_UINT8): Remove, as these are no longer effective.
Diffstat (limited to 'src')
-rw-r--r--src/parse-gram.y5
1 files changed, 0 insertions, 5 deletions
diff --git a/src/parse-gram.y b/src/parse-gram.y
index b4132841..043fa581 100644
--- a/src/parse-gram.y
+++ b/src/parse-gram.y
@@ -112,11 +112,6 @@
/* A string that describes a char (e.g., 'a' -> "'a'"). */
static char const *char_name (char);
- #define YYTYPE_INT16 int_fast16_t
- #define YYTYPE_INT8 int_fast8_t
- #define YYTYPE_UINT16 uint_fast16_t
- #define YYTYPE_UINT8 uint_fast8_t
-
/* Add style to semantic values in traces. */
static void tron (FILE *yyo);
static void troff (FILE *yyo);