[PATCH 1/3] gas: ignore ONLY_STANDARD_ESCAPES in scrubber

Jan Beulich jbeulich@suse.com
Fri Jun 19 08:17:37 GMT 2026


The handling there is broken in several ways:
- It gets in the way of macro parameter names starting with one of the not
  special cased values.
- For perhaps a small set of targets (SINGLE_QUOTE_STRINGS, M68k MRI
  mode): While the "quotechar" static variable allows for string quotation
  by other than '"', the case labels circumventing the warning only (and
  potentially wrongly) cover '"'.

read.c:next_char_of_string() having similar checking in place, drop the
special casing (as as_warn() invocation) from here.

While adjusting macros/macros.exp XFAIL-ary for an affected testcase,
correct the referenced manifest symbol at the same time.

--- a/gas/app.c
+++ b/gas/app.c
@@ -712,35 +712,7 @@ do_scrub_chars (size_t (*get) (char *, s
 	      PUT (quotechar);
 	      continue;
 
-	      /* These two are used inside macros.  */
-	    case '@':
-	    case '+':
-	      break;
-
-	    case '"':
-	    case '\\':
-	    case 'b':
-	    case 'f':
-	    case 'n':
-	    case 'r':
-	    case 't':
-	    case 'v':
-	    case 'x':
-	    case 'X':
-	    case '0':
-	    case '1':
-	    case '2':
-	    case '3':
-	    case '4':
-	    case '5':
-	    case '6':
-	    case '7':
-	      break;
-
 	    default:
-#ifdef ONLY_STANDARD_ESCAPES
-	      as_warn (_("unknown escape '\\%c' in string; ignored"), ch);
-#endif
 	      break;
 	    }
 	  PUT (ch);
--- a/gas/testsuite/gas/macros/macros.exp
+++ b/gas/testsuite/gas/macros/macros.exp
@@ -53,13 +53,9 @@ switch -glob $target_triplet {
 }
 
 if { ![istarget hppa*-*-*] || [istarget *-*-linux*] } {
-    # FIXME: Due to macro mishandling of ONLY_STANDARD_ESCAPES.
-    setup_xfail "avr-*" "cris-*" "crisv32-*" "msp430-*"
-
-    # These fail due to NO_STRING_ESCAPES
+    # These fail due to !TC_STRING_ESCAPES
     setup_xfail "powerpc*-*-aix*" "powerpc*-*-beos*" "powerpc*-*-macos*"
     setup_xfail "rs6000-*-*"
-    setup_xfail "z80-*-*"
 
     # FIXME: Due to difference in what "consecutive octets" means.
     setup_xfail "*c4x*-*-*" "*c54x*-*"



More information about the Binutils mailing list