c-lex.c (yylex): Fix boundary conditions in character literal and string literal...
authorDave Brolley <brolley@cygnus.com>
Mon, 27 Jul 1998 12:51:56 +0000 (12:51 +0000)
committerDave Brolley <brolley@gcc.gnu.org>
Mon, 27 Jul 1998 12:51:56 +0000 (08:51 -0400)
Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
* c-lex.c (yylex): Fix boundary conditions in character literal and
string literal loops.

From-SVN: r21413

gcc/ChangeLog
gcc/c-lex.c

index a325bad9621c0cc1946f4b6620b90e27c06784fd..cf87be47eccac14865c098b20f7cbeda50b73df4 100644 (file)
@@ -1,3 +1,8 @@
+Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
+
+       * c-lex.c (yylex): Fix boundary conditions in character literal and
+       string literal loops.
+
 Mon Jul 27 11:43:54 1998  Stan Cox  <scox@cygnus.com>
 
        * longlong.h (count_leading_zeros): Sparclite scan instruction was
index f4f4a12d1e8b3a38f33821a42806904d3b2fa2ca..69055f4a7c27ad4d488b389da2b96b0619232c83 100644 (file)
@@ -1994,7 +1994,7 @@ yylex ()
                int char_len = -1;
                for (i = 0; i < longest_char; ++i)
                  {
-                   if (p + i == token_buffer + maxtoken)
+                   if (p + i >= token_buffer + maxtoken)
                      p = extend_token_buffer (p);
                    p[i] = c;
 
@@ -2031,7 +2031,7 @@ yylex ()
                unsigned bytemask = (1 << width) - 1;
                int byte;
 
-               if (p + WCHAR_BYTES >= token_buffer + maxtoken)
+               if (p + WCHAR_BYTES > token_buffer + maxtoken)
                  p = extend_token_buffer (p);
 
                for (byte = 0; byte < WCHAR_BYTES; ++byte)
@@ -2050,7 +2050,7 @@ yylex ()
              }
            else
              {
-               if (p == token_buffer + maxtoken)
+               if (p >= token_buffer + maxtoken)
                  p = extend_token_buffer (p);
                *p++ = c;
              }
@@ -2063,14 +2063,14 @@ yylex ()
           or with a wide zero.  */
        if (wide_flag)
          {
-           if (p + WCHAR_BYTES >= token_buffer + maxtoken)
+           if (p + WCHAR_BYTES > token_buffer + maxtoken)
              p = extend_token_buffer (p);
            bzero (p, WCHAR_BYTES);
            p += WCHAR_BYTES;
          }
        else
          {
-           if (p == token_buffer + maxtoken)
+           if (p >= token_buffer + maxtoken)
              p = extend_token_buffer (p);
            *p++ = 0;
          }