Fix Aarch64 bug in warning filtering.

This fixes a small bug with the warning filtering code, which when a line has
generated a warning and a template decode error (due to the way templates are
resolved) which would not have been emitted and warnings are being suppressed
with -W it would erroneously emit the error.

I have no testcase for this because the only places we generate warnings during
encoding/decoding now is using msr/mrs and system registers.  They don't have a
template that would trigger this.

However an upcoming patch series will have tests in it which would expose this bug.

gas/ChangeLog:

	* config/tc-aarch64.c (output_operand_error_report): Apply filtering to
	current instead of head message.
This commit is contained in:
Tamar Christina
2018-09-18 14:36:37 +01:00
parent 206c1947c1
commit af81c43b51
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2018-09-18 Tamar Christina <tamar.christina@arm.com>
* config/tc-aarch64.c (output_operand_error_report): Apply filtering to
current instead of head message.
2018-09-17 Kito Cheng <kito@andestech.com> 2018-09-17 Kito Cheng <kito@andestech.com>
* testsuite/gas/riscv/bge.d: New. * testsuite/gas/riscv/bge.d: New.

View File

@ -4809,7 +4809,7 @@ output_operand_error_report (char *str, bfd_boolean non_fatal_only)
/* If we don't want to print non-fatal errors then don't consider them /* If we don't want to print non-fatal errors then don't consider them
at all. */ at all. */
if (curr->detail.kind != kind if (curr->detail.kind != kind
|| (non_fatal_only && !head->detail.non_fatal)) || (non_fatal_only && !curr->detail.non_fatal))
continue; continue;
/* If there are multiple errors, pick up the one with the highest /* If there are multiple errors, pick up the one with the highest
mismatching operand index. In the case of multiple errors with mismatching operand index. In the case of multiple errors with