x86/Intel: don't report multiple errors for a single insn operand

Multiple errors are more confusing than helpful, as the more generic
one often implies a sufficiently different adjustment than would
actually be needed to fix the code. Additionally it makes it more
cumbersome to add missing error checks, as the testsuite then needs
extra updating.
This commit is contained in:
Jan Beulich 2017-11-23 10:57:54 +01:00 committed by Jan Beulich
parent 9c23b42ffa
commit 38bf51134d
4 changed files with 11 additions and 8 deletions

View File

@ -1,3 +1,10 @@
2017-11-23 Jan Beulich <jbeulich@suse.com>
* config/tc-i386-intel.c (i386_intel_operand): Don't call
as_bad() if a prior error was already reported.
* testsuite/gas/i386/inval-avx512f.l,
testsuite/gas/i386/x86-64-inval-avx512f.l: Adjust expectations.
2017-11-22 Jim Wilson <jimw@sifive.com>
* as.c: Include write.h.

View File

@ -580,12 +580,14 @@ i386_intel_operand (char *operand_string, int got_a_float)
if (!is_end_of_line[(unsigned char) *input_line_pointer])
{
as_bad (_("junk `%s' after expression"), input_line_pointer);
if (ret)
as_bad (_("junk `%s' after expression"), input_line_pointer);
ret = 0;
}
else if (exp.X_op == O_illegal || exp.X_op == O_absent)
{
as_bad (_("invalid expression"));
if (ret)
as_bad (_("invalid expression"));
ret = 0;
}
else if (!intel_state.has_offset

View File

@ -18,10 +18,7 @@
.*:26: Error: .*
.*:27: Error: .*
.*:28: Error: .*
.*:28: Error: .*
.*:29: Error: .*
.*:29: Error: .*
.*:30: Error: .*
.*:30: Error: .*
.*:32: Error: .*
.*:33: Error: .*

View File

@ -17,10 +17,7 @@
.*:25: Error: .*
.*:26: Error: .*
.*:27: Error: .*
.*:27: Error: .*
.*:28: Error: .*
.*:28: Error: .*
.*:29: Error: .*
.*:29: Error: .*
.*:31: Error: .*
.*:32: Error: .*