https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120145

--- Comment #13 from Kirill A. Korinsky <kirill at korins dot ky> ---
Meanwhile, I had found that leads to a crash on the first place (and brokes
stack).

It is this commit
https://gcc.gnu.org/cgit/gcc/commit/?id=9b884225bfc609606f9b169b021c4da93feba48e

And when I apply patch:

diff --git gcc/tree-vect-loop.c gcc/tree-vect-loop.c
index 671ef2f7658..01aea3d69e3 100644
--- gcc/tree-vect-loop.c
+++ gcc/tree-vect-loop.c
@@ -1101,7 +1101,9 @@ vect_verify_full_masking (loop_vec_info loop_vinfo)
                 ??? We might want to try continuing beyond Pmode for ILP32
                 targets if CMP_BITS < IV_PRECISION.  */
              iv_type = this_type;
+#if !defined(SPARC64) && !defined(__OpenBSD__)
              if (!cmp_type || iv_precision > TYPE_PRECISION (cmp_type))
+#endif
                cmp_type = this_type;
              if (cmp_bits >= GET_MODE_BITSIZE (Pmode))
                break;

it bootstraped.

OpenBSD has following chunk at local patches:

--- gcc/config/sparc/openbsd64.h.orig
+++ gcc/config/sparc/openbsd64.h
@@ -54,6 +58,15 @@ along with GCC; see the file COPYING3.  If not see
 #undef WCHAR_TYPE_SIZE
 #define WCHAR_TYPE_SIZE 32

+#undef WINT_TYPE
+#define WINT_TYPE "int"
+
+#undef INTMAX_TYPE
+#define INTMAX_TYPE "long long int"
+
+#undef UINTMAX_TYPE
+#define UINTMAX_TYPE "long long unsigned int"
+
 #undef SPARC_LONG_DOUBLE_TYPE_SIZE
 #define SPARC_LONG_DOUBLE_TYPE_SIZE 128


maybe it rings any bell.

Reply via email to