http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50251
--- Comment #13 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-09-02 09:42:13 UTC --- (In reply to comment #6) > fold_builtin_alloca_for_var should record stack alignment > change due to > > + /* Declare array. */ > + elem_type = build_nonstandard_integer_type (BITS_PER_UNIT, 1); > + n_elem = size * 8 / BITS_PER_UNIT; > + align = MIN (size * 8, BIGGEST_ALIGNMENT); > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + array_type = build_array_type_nelts (elem_type, n_elem); > + var = create_tmp_var (array_type, NULL); > + DECL_ALIGN (var) = align; > + If the stack alignment code cannot handle decls with any DECL_ALIGN it is broken. We for sure do not need to do anything here nor in the vectorizer, which does if (vect_can_force_dr_alignment_p (decl, alignment)) { DECL_ALIGN (decl) = TYPE_ALIGN (vectype); DECL_USER_ALIGN (decl) = 1;