* app.c (do_scrub_chars): Provide a one character buffer to hold a
authorNick Clifton <nickc@redhat.com>
Fri, 20 Jul 2007 08:20:27 +0000 (08:20 +0000)
committerNick Clifton <nickc@redhat.com>
Fri, 20 Jul 2007 08:20:27 +0000 (08:20 +0000)
      pushed back newline at the end of an unterminated quoted string.

gas/ChangeLog
gas/app.c

index 602c58c..f381533 100644 (file)
@@ -1,3 +1,8 @@
+2007-07-20  Nick Clifton  <nickc@redhat.com>
+
+       * app.c (do_scrub_chars): Provide a one character buffer to hold a
+       pushed back newline at the end of an unterminated quoted string.
+
 2007-07-14  Nick Clifton  <nickc@redhat.com>
 
        * config/tc-arm.c (create_register_alias): Return a boolean rather
index 637662f..d8d0cc5 100644 (file)
--- a/gas/app.c
+++ b/gas/app.c
@@ -558,8 +558,14 @@ do_scrub_chars (int (*get) (char *, int), char *tostart, int tolen)
          ch = GET ();
          if (ch == EOF)
            {
+             /* This buffer is here specifically so
+                that the UNGET below will work.  */
+             static char one_char_buf[1];
+
              as_warn (_("end of file in string; '%c' inserted"), quotechar);
              state = old_state;
+             from = fromend = one_char_buf + 1;
+             fromlen = 1;
              UNGET ('\n');
              PUT (quotechar);
            }