From: Jan Beulich Date: Fri, 17 Jul 2026 07:23:07 +0000 (+0200) Subject: gas: ignore ONLY_STANDARD_ESCAPES in scrubber X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2792bbd8b98e205716ddda02b690cc067313e71a;p=thirdparty%2Fbinutils-gdb.git gas: ignore ONLY_STANDARD_ESCAPES in scrubber 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. --- diff --git a/gas/app.c b/gas/app.c index 6d8b8889784..3410e696572 100644 --- a/gas/app.c +++ b/gas/app.c @@ -707,35 +707,7 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen, 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); diff --git a/gas/testsuite/gas/macros/macros.exp b/gas/testsuite/gas/macros/macros.exp index 34912414e90..741d743624e 100644 --- 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*-*"