From: Jan Beulich Date: Fri, 9 Aug 2024 09:48:32 +0000 (+0200) Subject: gas: respect CR_EOL also for scrubbing X-Git-Tag: gdb-16-branchpoint~1203 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d5de496c0eda2a7f47a183362e3108920d44d8d5;p=thirdparty%2Fbinutils-gdb.git gas: respect CR_EOL also for scrubbing While apparently intended to be only externally controlled (e.g. via specifying CFLAGS at make invocation), we should still keep scrubber and lexer in sync in this regard. There's one place which imo was previously wrong already, but would go further wrong and hence is being adjusted right here: An .mri directive can be terminated by any kind of "line" (really: statement) separators. --- diff --git a/gas/app.c b/gas/app.c index 89e9dd0ac82..a45c03f8384 100644 --- a/gas/app.c +++ b/gas/app.c @@ -93,7 +93,11 @@ static char last_char; static char lex[256] = { [' '] = LEX_IS_WHITESPACE, ['\t'] = LEX_IS_WHITESPACE, +#ifdef CR_EOL + ['\r'] = LEX_IS_LINE_SEPARATOR, +#else ['\r'] = LEX_IS_WHITESPACE, +#endif ['\n'] = LEX_IS_NEWLINE, [':'] = LEX_IS_COLON, ['$'] = LEX_IS_SYMBOL_COMPONENT, @@ -857,7 +861,9 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen, ++mri_state; } else if (*mri_state != '\0' - || (!IS_WHITESPACE (ch) && !IS_NEWLINE (ch))) + || (!IS_WHITESPACE (ch) + && !IS_LINE_SEPARATOR (ch) + && !IS_NEWLINE (ch))) { /* We did not get the expected character, or we didn't get a valid terminating character after seeing the