diff gcc/testsuite/gcc.dg/alias-10.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/alias-10.c	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,31 @@
+/* For PR tree-optimization/14784  */
+
+/* { dg-do compile } */
+/* { dg-options "-O2 -funswitch-loops -fdump-tree-unswitch-details" } */
+
+typedef struct bitmap_element_def
+{
+  unsigned int indx;
+} bitmap_element;
+
+typedef struct bitmap_head_def {
+    bitmap_element *first;
+    int using_obstack;
+} bitmap_head;
+typedef struct bitmap_head_def *bitmap;
+
+bitmap_element *bitmap_free;
+
+void foo (bitmap head, bitmap_element *elt)
+{
+  while (1)
+    {
+      /* Alias analysis problems used to prevent us from recognizing
+	 that this condition is invariant.  */
+      if (head->using_obstack)
+	bitmap_free = elt;
+    }
+}
+
+
+/* { dg-final { scan-tree-dump-times "Unswitching" 1 "unswitch"} } */