[binutils-gdb] PR26426, ASAN: neon_quad tc-arm.c:15175

Alan Modra amodra@sourceware.org
Tue Aug 25 13:38:05 GMT 2020


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

commit 250dd99fc92bac670691b66363dd71dccb22b10d
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Aug 25 14:12:49 2020 +0930

    PR26426, ASAN: neon_quad tc-arm.c:15175
    
            PR 26426
            * config/tc-arm.c (do_neon_mvn, do_neon_swp): Bail out on
            NS_NULL shape.

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

diff --git a/gas/ChangeLog b/gas/ChangeLog
index ce58416c4a3..96e955140bb 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2020-08-25  Alan Modra  <amodra@gmail.com>
+
+	PR 26426
+	* config/tc-arm.c (do_neon_mvn, do_neon_swp): Bail out on
+	NS_NULL shape.
+
 2020-08-25  Alan Modra  <amodra@gmail.com>
 
 	PR 26410
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 1cc0cea25e7..830cbda6182 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -19555,6 +19555,9 @@ do_neon_mvn (void)
       else
 	rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
 
+      if (rs == NS_NULL)
+	return;
+
       NEON_ENCODE (INTEGER, inst);
       inst.instruction |= LOW4 (inst.operands[0].reg) << 12;
       inst.instruction |= HI1 (inst.operands[0].reg) << 22;
@@ -20634,6 +20637,8 @@ static void
 do_neon_swp (void)
 {
   enum neon_shape rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
+  if (rs == NS_NULL)
+    return;
   neon_two_same (neon_quad (rs), 1, -1);
 }


More information about the Binutils-cvs mailing list