1999-11-08 Andrew Haley <aph@cygnus.com>
authorAndrew Haley <aph@redhat.com>
Tue, 9 Nov 1999 17:14:45 +0000 (17:14 +0000)
committerAndrew Haley <aph@redhat.com>
Tue, 9 Nov 1999 17:14:45 +0000 (17:14 +0000)
* app.c (do_scrub_chars): When in State 10, treat backslash
characters in the same way as as symbol characters.

gas/ChangeLog
gas/app.c

index f21f66d..edad0df 100644 (file)
@@ -1,3 +1,8 @@
+1999-11-08  Andrew Haley  <aph@cygnus.com>
+
+       * app.c (do_scrub_chars): When in State 10, treat backslash
+       characters in the same way as as symbol characters.
+
 1999-11-07  Richard Henderson  <rth@cygnus.com>
 
        * config/tc-alpha.c (alpha_align): Check, don't assert, that
index 0494aec..73d579d 100644 (file)
--- a/gas/app.c
+++ b/gas/app.c
@@ -1227,6 +1227,23 @@ do_scrub_chars (get, tostart, tolen)
            }
          else if (state == 10)
            {
+             if (ch == '\\')
+               {
+                 /* Special handling for backslash: a backslash may
+                    be the beginning of a formal parameter (of a
+                    macro) following another symbol character, with
+                    whitespace in between.  If that is the case, we
+                    output a space before the parameter.  Strictly
+                    speaking, correct handling depends upon what the
+                    macro parameter expands into; if the parameter
+                    expands into something which does not start with
+                    an operand character, then we don't want to keep
+                    the space.  We don't have enough information to
+                    make the right choice, so here we are making the
+                    choice which is more likely to be correct.  */
+                 PUT (' ');
+               }
+
              state = 3;
            }
          PUT (ch);