This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Fix Aarch64 bug in warning filtering.


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=af81c43b51e17c597c8eb5bfaa02fa7f5f6dbe72

commit af81c43b51e17c597c8eb5bfaa02fa7f5f6dbe72
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Tue Sep 18 14:36:37 2018 +0100

    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.

Diff:
---
 gas/ChangeLog           | 5 +++++
 gas/config/tc-aarch64.c | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]