summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/app.c17
2 files changed, 22 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f21f66d2cf7..edad0dfa00f 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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
diff --git a/gas/app.c b/gas/app.c
index 0494aec23b6..73d579dfe5d 100644
--- 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);