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).
This commit is contained in:
Jan Beulich 2026-07-17 09:23:35 +02:00
parent 2792bbd8b9
commit a97e7d1eb5
2 changed files with 6 additions and 8 deletions

View file

@ -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';

View file

@ -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\""