* 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 602c58c4c16435023d1349cb01b39d162b40797b..f38153394d371c2bd08235d75a7aa9cc3263ed28 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 637662f81861a0aeb5012b5e6574456c037cb8a0..d8d0cc552d32beb2de8cc882fc517db740fa8041 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);
            }