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.

Patch can bootstrap on x86_64-linux-gnu and survives regression tests.

Ready to be installed?
Thanks,
Martin

gcc/ChangeLog:

        * gengtype-state.cc (read_a_state_token): Do not skip extra
        character after escaped sequence.
---
 gcc/gengtype-state.cc | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/gcc/gengtype-state.cc b/gcc/gengtype-state.cc
index dfd9ea52785..2dfe8edf1a5 100644
--- a/gcc/gengtype-state.cc
+++ b/gcc/gengtype-state.cc
@@ -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':
                  {
-- 
2.36.0

Reply via email to