From: Jan Beulich Date: Fri, 17 Jul 2026 07:23:35 +0000 (+0200) Subject: gas: don't recognize '8' and '9' as octal escape chars in strings X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a97e7d1eb509f3de0aa9d89a68389b910d9f2de4;p=thirdparty%2Fbinutils-gdb.git gas: don't recognize '8' and '9' as octal escape chars in strings It's not clear why these were covered; it has been like this from the very beginning of (available) source history. Yet more oddly, an old ia64 testcase actually uses such malformed escape sequences (which are being adjusted). --- diff --git a/gas/read.c b/gas/read.c index 1a7537ba2a1..ae481007c32 100644 --- a/gas/read.c +++ b/gas/read.c @@ -6221,14 +6221,12 @@ next_char_of_string (void) case '5': case '6': case '7': - case '8': - case '9': { unsigned number; int i; for (i = 0, number = 0; - ISDIGIT (c) && i < 3; + i < 3 && c >= '0' && c <= '7'; c = *input_line_pointer++, i++) { number = number * 8 + c - '0'; diff --git a/gas/testsuite/gas/ia64/alias.s b/gas/testsuite/gas/ia64/alias.s index 9ac18014fa6..d54f69fbed0 100644 --- a/gas/testsuite/gas/ia64/alias.s +++ b/gas/testsuite/gas/ia64/alias.s @@ -1,11 +1,11 @@ .section .foo,"aw","progbits" .secalias .foo,"1234" .secalias .foo,"1234" - .alias foo, "\"\80\84\"" - .alias foo, "\"\80\84\"" + .alias foo, "\"\100\104\"" + .alias foo, "\"\100\104\"" foo: - stringz "\"\80\84\"" + stringz "\"\x40\x44\"" .secalias .foo,"1234" .secalias .foo,"1234" - .alias foo, "\"\80\84\"" - .alias foo, "\"\80\84\"" + .alias foo, "\"\x40\x44\"" + .alias foo, "\"\x40\x44\""