diff options
author | Tamar Christina <tamar.christina@arm.com> | 2018-09-18 14:36:37 +0100 |
---|---|---|
committer | Tamar Christina <tamar.christina@arm.com> | 2018-09-18 14:37:56 +0100 |
commit | af81c43b51e17c597c8eb5bfaa02fa7f5f6dbe72 (patch) | |
tree | 3c76ecc819ae09edb217730a44b56d6c0b93bdc3 /gas | |
parent | 206c1947c1cb8e4ac6abb8e6803c762200167cde (diff) | |
download | gdb-af81c43b51e17c597c8eb5bfaa02fa7f5f6dbe72.zip gdb-af81c43b51e17c597c8eb5bfaa02fa7f5f6dbe72.tar.gz gdb-af81c43b51e17c597c8eb5bfaa02fa7f5f6dbe72.tar.bz2 |
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.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-aarch64.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 0a4c566..6f2a1ef 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 3198596..c77de21 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 |