]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR target/89186 (ICE in mark_addressable at gcc/gimple-expr.c:894 since...
authorJakub Jelinek <jakub@redhat.com>
Fri, 30 Aug 2019 11:37:41 +0000 (13:37 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 30 Aug 2019 11:37:41 +0000 (13:37 +0200)
Backported from mainline
2019-02-05  Jakub Jelinek  <jakub@redhat.com>

PR target/89186
* optabs.c (prepare_cmp_insn): Pass x and y to
emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).

* g++.dg/ext/vector36.C: New test.

From-SVN: r275098

gcc/ChangeLog
gcc/optabs.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ext/vector36.C [new file with mode: 0644]

index 4363ddafcd30a6bf56fac61df6978888876141c7..824bedc31707feaee5200a9feb8b1b5ae82a953c 100644 (file)
@@ -1,6 +1,12 @@
 2019-08-30  Jakub Jelinek  <jakub@redhat.com>
 
        Backported from mainline
+       2019-02-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/89186
+       * optabs.c (prepare_cmp_insn): Pass x and y to
+       emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
+
        2019-02-02  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/87887
index 9591adaae0ce4e1a76249d673f3d6772690837af..d3624fdf9ef960f3ed23c6f3bb33ccef1cae96a6 100644 (file)
@@ -3830,7 +3830,7 @@ prepare_cmp_insn (rtx x, rtx y, enum rtx_code comparison, rtx size,
        goto fail;
 
       /* Otherwise call a library function.  */
-      result = emit_block_comp_via_libcall (XEXP (x, 0), XEXP (y, 0), size);
+      result = emit_block_comp_via_libcall (x, y, size);
 
       x = result;
       y = const0_rtx;
index 57fdb3f2ce4d6a2f30fce9a8eb9dd3653a9c33d2..8b5d6d16085a8249363d6d1c3ac965c0b60416cc 100644 (file)
@@ -1,6 +1,11 @@
 2019-08-30  Jakub Jelinek  <jakub@redhat.com>
 
        Backported from mainline
+       2019-02-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/89186
+       * g++.dg/ext/vector36.C: New test.
+
        2019-02-02  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/87887
diff --git a/gcc/testsuite/g++.dg/ext/vector36.C b/gcc/testsuite/g++.dg/ext/vector36.C
new file mode 100644 (file)
index 0000000..b637f08
--- /dev/null
@@ -0,0 +1,6 @@
+// PR target/89186
+// { dg-do compile }
+// { dg-options "-fnon-call-exceptions" }
+// { dg-additional-options "-mno-sse" { target i?86-*-* x86_64-*-* } }
+
+#include "vector27.C"