summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamar Christina <tamar.christina@arm.com>2018-09-18 14:36:37 +0100
committerTamar Christina <tamar.christina@arm.com>2018-09-18 14:37:56 +0100
commitaf81c43b51e17c597c8eb5bfaa02fa7f5f6dbe72 (patch)
tree3c76ecc819ae09edb217730a44b56d6c0b93bdc3
parent206c1947c1cb8e4ac6abb8e6803c762200167cde (diff)
downloadbinutils-gdb-af81c43b51e17c597c8eb5bfaa02fa7f5f6dbe72.tar.gz
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.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-aarch64.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 0a4c5665784..6f2a1ef319d 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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>
* testsuite/gas/riscv/bge.d: New.
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 31985963e31..c77de21d19d 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -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
at all. */
if (curr->detail.kind != kind
- || (non_fatal_only && !head->detail.non_fatal))
+ || (non_fatal_only && !curr->detail.non_fatal))
continue;
/* If there are multiple errors, pick up the one with the highest
mismatching operand index. In the case of multiple errors with