re PR target/89186 (ICE in mark_addressable at gcc/gimple-expr.c:894 since r268138)
authorJakub Jelinek <jakub@redhat.com>
Tue, 5 Feb 2019 09:17:18 +0000 (10:17 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 5 Feb 2019 09:17:18 +0000 (10:17 +0100)
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: r268531

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

index f7c8b50..76a3e18 100644 (file)
@@ -1,3 +1,9 @@
+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-05  Richard Biener  <rguenther@suse.de>
 
        PR middle-end/89150
index ecda620..f2ca435 100644 (file)
@@ -3917,7 +3917,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 8a77c00..51879b8 100644 (file)
@@ -1,3 +1,8 @@
+2019-02-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/89186
+       * g++.dg/ext/vector36.C: New test.
+
 2019-02-05  Alexandre Oliva <aoliva@redhat.com>
 
        PR c++/87770
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"