On Wed, 4 Nov 2020, Iain Sandoe wrote: > Martin Sebor via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > >On 11/3/20 4:13 AM, Richard Biener wrote: > >>This fixes the bad assumption that sizeof (bool) == 1 > >>Bootstrap / regtest running on x86_64-unknown-linux-gnu. > >>2020-11-03 Richard Biener <rguent...@suse.de> > >> PR bootstrap/97666 > >> * tree-vect-slp.c (vect_build_slp_tree_2): Scale > >> allocation of skip_args by sizeof (bool). > >>--- > >> gcc/tree-vect-slp.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >>diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c > >>index e97fbe897a7..08018a1d799 100644 > >>--- a/gcc/tree-vect-slp.c > >>+++ b/gcc/tree-vect-slp.c > >>@@ -1428,7 +1428,7 @@ vect_build_slp_tree_2 (vec_info *vinfo, slp_tree node, > >> /* If the SLP node is a PHI (induction or reduction), terminate > >> the recursion. */ > >>- bool *skip_args = XALLOCAVEC (bool, nops); > >>+ bool *skip_args = XALLOCAVEC (bool, sizeof (bool) * nops); > > > >This change caught my eye. XALLOCAVEC() does the scaling: > > > > #define XALLOCAVEC(T, N) ((T *) alloca (sizeof (T) * (N))) > > > >so scaling it again doesn't make sense to me... > > > >> memset (skip_args, 0, nops); > > > >... especially not when it's followed by the memset call above that > >doesn't do the same. If I'm missing some subtlety it might be worth > >adding a comment explaining it. > > um yes, the fix I tested on powerpc-darwin was? > > memset (skip_args, 0, sizeof (bool) * nops); > > (I haven?t tried current master, since you pushed this change - regstrap takes > most > of a day on that machine).
Meh. This is what you get for trying to slip the fix in during another bootstrap / regtest cycle. Will fix (again). Richard.