From d669f5da3c4c5c74f5a55d3c81c795b44aa877aa Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sun, 18 Feb 1996 21:13:37 -0500 Subject: [PATCH] (yylex... (yylex, case '0'..'9','.'): For cases '0' and '1', check for single digit constant before resorting to general number processing. From-SVN: r11297 --- gcc/c-lex.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/gcc/c-lex.c b/gcc/c-lex.c index 26f391121b4..89ff60b0cce 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -1118,7 +1118,23 @@ yylex () break; - case '0': case '1': case '2': case '3': case '4': + case '0': case '1': + { + int next_c; + /* Check first for common special case: single-digit 0 or 1. */ + + next_c = getc (finput); + ungetc (next_c, finput); /* Always undo this lookahead. */ + if (!isalnum (next_c) && next_c != '.') + { + token_buffer[0] = (char)c, token_buffer[1] = '\0'; + yylval.ttype = (c == '0') ? integer_zero_node : integer_one_node; + value = CONSTANT; + break; + } + /*FALLTHRU*/ + } + case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '.': { -- 2.30.2