]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gengtype: do not skip char after escape sequnce
authorMartin Liska <mliska@suse.cz>
Wed, 4 May 2022 14:21:45 +0000 (16:21 +0200)
committerMartin Liska <mliska@suse.cz>
Thu, 16 Jun 2022 06:23:46 +0000 (08:23 +0200)
Right now, when a \$x escape sequence occures, the
next character after $x is skipped, which is bogus.

The code has very low coverage right now.

gcc/ChangeLog:

* gengtype-state.cc (read_a_state_token): Do not skip extra
character after escaped sequence.

gcc/gengtype-state.cc

index 2c7f642cd3d48a7826afb0b515229baa14799ee8..770abab0bd57e9d355615a61fd039288dbfb38d5 100644 (file)
@@ -473,43 +473,33 @@ read_a_state_token (void)
                {
                case 'a':
                  obstack_1grow (&bstring_obstack, '\a');
-                 getc (state_file);
                  break;
                case 'b':
                  obstack_1grow (&bstring_obstack, '\b');
-                 getc (state_file);
                  break;
                case 't':
                  obstack_1grow (&bstring_obstack, '\t');
-                 getc (state_file);
                  break;
                case 'n':
                  obstack_1grow (&bstring_obstack, '\n');
-                 getc (state_file);
                  break;
                case 'v':
                  obstack_1grow (&bstring_obstack, '\v');
-                 getc (state_file);
                  break;
                case 'f':
                  obstack_1grow (&bstring_obstack, '\f');
-                 getc (state_file);
                  break;
                case 'r':
                  obstack_1grow (&bstring_obstack, '\r');
-                 getc (state_file);
                  break;
                case '"':
                  obstack_1grow (&bstring_obstack, '\"');
-                 getc (state_file);
                  break;
                case '\\':
                  obstack_1grow (&bstring_obstack, '\\');
-                 getc (state_file);
                  break;
                case ' ':
                  obstack_1grow (&bstring_obstack, ' ');
-                 getc (state_file);
                  break;
                case 'x':
                  {