We have two Graphite related release blockers for 4.7. The following patch fixes the first one.
The asserts in static inline ppl_dimension_type psct_dynamic_dim (poly_bb_p pbb, graphite_dim_t level) { graphite_dim_t result = 1 + 2 * level; gcc_assert (result < pbb_nb_scattering_transform (pbb)); return result; } static inline ppl_dimension_type psct_static_dim (poly_bb_p pbb, graphite_dim_t level) { graphite_dim_t result = 2 * level; gcc_assert (result < pbb_nb_scattering_transform (pbb)); return result; } are not consistent in case both a dynamic and static dimension should always exist at the same time. Changing psct_dynamic_dim to use <= fixes the issue. Tobias, you are the only active(?) Graphite reviewer left. Ok? Thanks, Richard. 2012-01-09 Richard Guenther <rguent...@suse.de> PR tree-optimization/50561 * graphite-poly.h (psct_dynamic_dim): Fix assert. * gcc.dg/graphite/pr50561.c: New testcase. Index: gcc/graphite-poly.h =================================================================== --- gcc/graphite-poly.h (revision 183013) +++ gcc/graphite-poly.h (working copy) @@ -656,7 +656,7 @@ psct_dynamic_dim (poly_bb_p pbb, graphit { graphite_dim_t result = 1 + 2 * level; - gcc_assert (result < pbb_nb_scattering_transform (pbb)); + gcc_assert (result <= pbb_nb_scattering_transform (pbb)); return result; } Index: gcc/testsuite/gcc.dg/graphite/pr50561.c =================================================================== --- gcc/testsuite/gcc.dg/graphite/pr50561.c (revision 0) +++ gcc/testsuite/gcc.dg/graphite/pr50561.c (revision 0) @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -floop-flatten -floop-strip-mine" } */ + +void f (unsigned *s) +{ + int n; + for (n = 0; n < 256; n++) + s[n] = 0; +}