diff options
author | Nick Clifton <nickc@redhat.com> | 2016-12-05 16:54:59 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2016-12-05 16:54:59 +0000 |
commit | 14c1428b29fff12d8119ce6f4703be0de08197af (patch) | |
tree | 4bc8d41cda22f8be57a3c2ed003ceab8bc2322ea /gas | |
parent | fa6631b4eecfcca00c13b9594e6336dffd40982f (diff) | |
download | gdb-14c1428b29fff12d8119ce6f4703be0de08197af.zip gdb-14c1428b29fff12d8119ce6f4703be0de08197af.tar.gz gdb-14c1428b29fff12d8119ce6f4703be0de08197af.tar.bz2 |
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.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/expr.c | 2 | ||||
-rw-r--r-- | gas/read.h | 5 |
3 files changed, 11 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 53f773c..a5622c7 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2016-12-05 Nick Clifton <nickc@redhat.com> + + PR gas/20904 + * as.h (SKIP_ALL_WHITESPACE): New macro. + * expr.c (operand): Use it. + 2016-12-05 Szabolcs Nagy <szabolcs.nagy@arm.com> * config/tc-arm.c (do_vcmla, do_vcadd): Define. @@ -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. */ @@ -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() \ |