From: Nick Clifton Date: Mon, 5 Dec 2016 16:54:59 +0000 (+0000) Subject: Fix ICE in assembler when passed a bogus input file. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=14c1428b29fff12d8119ce6f4703be0de08197af;p=binutils-gdb.git Fix ICE in assembler when passed a bogus input file. PR gas/20904 * as.h (SKIP_ALL_WHITESPACE): New macro. * expr.c (operand): Use it. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 53f773cc4f9..a5622c7a32b 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2016-12-05 Nick Clifton + + PR gas/20904 + * as.h (SKIP_ALL_WHITESPACE): New macro. + * expr.c (operand): Use it. + 2016-12-05 Szabolcs Nagy * config/tc-arm.c (do_vcmla, do_vcadd): Define. diff --git a/gas/expr.c b/gas/expr.c index e8d553dd422..e1e49b217f0 100644 --- a/gas/expr.c +++ b/gas/expr.c @@ -1371,7 +1371,7 @@ operand (expressionS *expressionP, enum expr_mode mode) /* It is more 'efficient' to clean up the expressionS when they are created. Doing it here saves lines of code. */ clean_up_expression (expressionP); - SKIP_WHITESPACE (); /* -> 1st char after operand. */ + SKIP_ALL_WHITESPACE (); /* -> 1st char after operand. */ know (*input_line_pointer != ' '); /* The PA port needs this information. */ diff --git a/gas/read.h b/gas/read.h index e0cb6468b48..0a3ebf6c6af 100644 --- a/gas/read.h +++ b/gas/read.h @@ -29,8 +29,11 @@ extern char *input_line_pointer; /* -> char we are parsing now. */ #ifdef PERMIT_WHITESPACE #define SKIP_WHITESPACE() \ ((*input_line_pointer == ' ') ? ++input_line_pointer : 0) +#define SKIP_ALL_WHITESPACE() \ + while (*input_line_pointer == ' ') ++input_line_pointer #else -#define SKIP_WHITESPACE() know(*input_line_pointer != ' ' ) +#define SKIP_WHITESPACE() know (*input_line_pointer != ' ' ) +#define SKIP_ALL_WHITESPACE() SKIP_WHITESPACE() #endif #define SKIP_WHITESPACE_AFTER_NAME() \