+2016-02-01 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/69574
+ * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
+ of asserting return chrec_dont_know.
+
2016-02-01 Martin Liska <mliska@suse.cz>
* mem-stats-traits.h: Add copyright header.
+2016-02-01 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/69574
+ * gcc.dg/torture/pr69574.c: New testcase.
+
2016-02-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/69579
--- /dev/null
+/* { dg-do compile } */
+
+typedef unsigned mytype;
+
+struct S {
+ mytype *pu;
+};
+
+mytype f(struct S *e)
+{
+ mytype x;
+ if(&x != e->pu)
+ __builtin_memcpy(&x, e->pu, sizeof(unsigned));
+ return x;
+}
/* There is no evolution in this loop. */
return initial_condition (chrec);
+ else if (flow_loop_nested_p (loop, chloop))
+ return hide_evolution_in_other_loops_than_loop (CHREC_LEFT (chrec),
+ loop_num);
+
else
- {
- gcc_assert (flow_loop_nested_p (loop, chloop));
- return hide_evolution_in_other_loops_than_loop (CHREC_LEFT (chrec),
- loop_num);
- }
+ return chrec_dont_know;
default:
return chrec;