diff options
author | Tom Tromey <tromey@adacore.com> | 2024-03-14 12:28:26 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2024-04-02 11:24:27 -0600 |
commit | 0298128e07b7e58f93d745b657413e41766de3cb (patch) | |
tree | 36760f4ae49e125e566cc34bc4a3fd930c36e526 /gdb | |
parent | 33a03c121318b64b89f0e161bef638a7ab190e7a (diff) | |
download | gdb-0298128e07b7e58f93d745b657413e41766de3cb.zip gdb-0298128e07b7e58f93d745b657413e41766de3cb.tar.gz gdb-0298128e07b7e58f93d745b657413e41766de3cb.tar.bz2 |
Remove "numbuf" global
The lexer has a "numbuf" global that is only used for temporary
storage. This patch removes the global and redeclares it at the
points of use.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ada-lex.l | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gdb/ada-lex.l b/gdb/ada-lex.l index 1122172..4e99eaa 100644 --- a/gdb/ada-lex.l +++ b/gdb/ada-lex.l @@ -59,9 +59,7 @@ DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER #define NUMERAL_WIDTH 256 #define LONGEST_SIGN ((ULONGEST) 1 << (sizeof(LONGEST) * HOST_CHAR_BIT - 1)) -/* Temporary staging for numeric literals. */ -static char numbuf[NUMERAL_WIDTH]; - static void canonicalizeNumeral (char *s1, const char *); +static void canonicalizeNumeral (char *s1, const char *); static struct stoken processString (const char*, int); static int processInt (struct parser_state *, const char *, const char *, const char *); @@ -114,6 +112,7 @@ static void rewind_to_char (int); "--".* { yyterminate(); } {NUM10}{POSEXP} { + char numbuf[NUMERAL_WIDTH]; canonicalizeNumeral (numbuf, yytext); char *e_ptr = strrchr (numbuf, 'e'); *e_ptr = '\0'; @@ -121,11 +120,13 @@ static void rewind_to_char (int); } {NUM10} { + char numbuf[NUMERAL_WIDTH]; canonicalizeNumeral (numbuf, yytext); return processInt (pstate, NULL, numbuf, NULL); } {NUM10}"#"{HEXDIG}({HEXDIG}|_)*"#"{POSEXP} { + char numbuf[NUMERAL_WIDTH]; canonicalizeNumeral (numbuf, yytext); char *e_ptr = strrchr (numbuf, 'e'); *e_ptr = '\0'; @@ -139,23 +140,27 @@ static void rewind_to_char (int); floating-point number is formed by reinterpreting the bytes, allowing direct control over the bits. */ {NUM10}(l{0,2}f)?"#"{HEXDIG}({HEXDIG}|_)*"#" { + char numbuf[NUMERAL_WIDTH]; canonicalizeNumeral (numbuf, yytext); return processInt (pstate, numbuf, strchr (numbuf, '#') + 1, NULL); } "0x"{HEXDIG}+ { + char numbuf[NUMERAL_WIDTH]; canonicalizeNumeral (numbuf, yytext+2); return processInt (pstate, "16#", numbuf, NULL); } {NUM10}"."{NUM10}{EXP} { + char numbuf[NUMERAL_WIDTH]; canonicalizeNumeral (numbuf, yytext); return processReal (pstate, numbuf); } {NUM10}"."{NUM10} { + char numbuf[NUMERAL_WIDTH]; canonicalizeNumeral (numbuf, yytext); return processReal (pstate, numbuf); } |