From 38bf51134d1a58f155c89f2b1c7bf885c2604ead Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Thu, 23 Nov 2017 10:57:54 +0100 Subject: [PATCH] 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. --- gas/ChangeLog | 7 +++++++ gas/config/tc-i386-intel.c | 6 ++++-- gas/testsuite/gas/i386/inval-avx512f.l | 3 --- gas/testsuite/gas/i386/x86-64-inval-avx512f.l | 3 --- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index d77e7ef6f6a..8b6f8f9224f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2017-11-23 Jan Beulich + + * 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 * as.c: Include write.h. diff --git a/gas/config/tc-i386-intel.c b/gas/config/tc-i386-intel.c index b8874e4b8dd..79fe0b47d45 100644 --- a/gas/config/tc-i386-intel.c +++ b/gas/config/tc-i386-intel.c @@ -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 diff --git a/gas/testsuite/gas/i386/inval-avx512f.l b/gas/testsuite/gas/i386/inval-avx512f.l index b49a1d598af..357a3c66289 100644 --- 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: .* diff --git a/gas/testsuite/gas/i386/x86-64-inval-avx512f.l b/gas/testsuite/gas/i386/x86-64-inval-avx512f.l index 21c49068151..1f7251d7732 100644 --- 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: .* -- 2.30.2