diff gcc/testsuite/gcc.dg/20031201-2.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/gcc.dg/20031201-2.c	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,41 @@
+/* PR optimization/11634 */
+
+/* The following code used to ICE in verify_local_live_at_start on
+   PA when compiled with -O2.  The cause was that split_all_insns was
+   not updating liveness information when deleting no-op moves that
+   had REG_UNUSED notes.  */
+
+/* { dg-do compile { target hppa*-*-* } } */
+/* { dg-options "-O2" } */
+
+void *f(void *s);
+void H5T_conv_vlen (unsigned long long nelmts, unsigned char *bg_ptr)
+{
+  long long seq_len;
+  unsigned long long bg_seq_len = 0;
+  unsigned src_base_size, dst_base_size;
+  void *tmp_buf = 0;
+  unsigned tmp_buf_size = 0;
+  unsigned long long elmtno;
+  for (elmtno = 0; elmtno < nelmts; elmtno++)
+    {
+      unsigned char *tmp = bg_ptr;
+      bg_seq_len = *tmp;
+      if (bg_seq_len > 0
+          && tmp_buf_size <
+          (unsigned) (bg_seq_len *
+                      (src_base_size > dst_base_size
+                       ? src_base_size
+		       : dst_base_size)))
+	{
+	  tmp_buf_size =
+	    (unsigned) (bg_seq_len *
+			(src_base_size > dst_base_size
+			 ? src_base_size
+			 : dst_base_size));
+	}
+      if (bg_seq_len < seq_len)
+	f ((unsigned char *) tmp_buf + dst_base_size * bg_seq_len);
+    }
+}
+