PATCH: PR gas/11356: "as -alm" returns very long lines

Alan Modra amodra@gmail.com
Tue Mar 9 00:59:00 GMT 2010


On Mon, Mar 08, 2010 at 02:51:39PM -0800, H.J. Lu wrote:
> My fix for PR 9966 didn't check EOL for `\`.  This patc fixes it.  OK
> to install?

No, your logic is still incorrect.  A backslash quote always lasts for
exactly one char so the bug was that seen_slash stayed set.  I think
the following is right.

	PR gas/11356
	* listing.c (listing_newline): Correct backslash quote logic.

Index: gas/listing.c
===================================================================
RCS file: /cvs/src/src/gas/listing.c,v
retrieving revision 1.46
diff -u -p -r1.46 listing.c
--- gas/listing.c	12 Jan 2010 01:10:55 -0000	1.46
+++ gas/listing.c	9 Mar 2010 00:36:10 -0000
@@ -347,10 +347,12 @@ listing_newline (char *ps)
 			 || is_end_of_line [(unsigned char) *copy] != 1);
 	       copy++)
 	    {
-	      if (*copy == '\\')
-		seen_slash = ! seen_slash;
-	      else if (*copy == '"' && seen_slash)
-		seen_quote = ! seen_quote;
+	      if (seen_slash)
+		seen_slash = 0;
+	      else if (*copy == '\\')
+		seen_slash = 1;
+	      else if (*copy == '"')
+		seen_quote = !seen_quote;
 	    }
 
 	  len = copy - input_line_pointer + 1;

-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list