This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] x86/Intel: don't report multiple errors for a single insn operand
- From: "Jan Beulich" <JBeulich at suse dot com>
- To: <binutils at sourceware dot org>
- Date: Mon, 20 Nov 2017 05:54:42 -0700
- Subject: [PATCH] x86/Intel: don't report multiple errors for a single insn operand
- Authentication-results: sourceware.org; auth=none
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.
gas/
2017-11-20 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.
--- a/gas/config/tc-i386-intel.c
+++ b/gas/config/tc-i386-intel.c
@@ -580,12 +580,14 @@ i386_intel_operand (char *operand_string
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
--- a/gas/testsuite/gas/i386/inval-avx512f.l
+++ b/gas/testsuite/gas/i386/inval-avx512f.l
@@ -18,11 +18,8 @@
.*:26: Error: .*
.*:27: Error: .*
.*:28: Error: .*
-.*:28: Error: .*
-.*:29: Error: .*
.*:29: Error: .*
.*:30: Error: .*
-.*:30: Error: .*
.*:32: Error: .*
.*:33: Error: .*
.*:35: Error: .*
--- a/gas/testsuite/gas/i386/x86-64-inval-avx512f.l
+++ b/gas/testsuite/gas/i386/x86-64-inval-avx512f.l
@@ -17,11 +17,8 @@
.*:25: Error: .*
.*:26: Error: .*
.*:27: Error: .*
-.*:27: Error: .*
-.*:28: Error: .*
.*:28: Error: .*
.*:29: Error: .*
-.*:29: Error: .*
.*:31: Error: .*
.*:32: Error: .*
.*:34: Error: .*