http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49536
Richard Guenther <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2011.06.27 09:09:35 AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | Summary|latent bug with creation of |latent bug in FSF gcc with |vector of arrays |creation of vector of | |arrays Ever Confirmed|0 |1 --- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-06-27 09:09:35 UTC --- Confirmed. I also get into the issue that get_vectype_for_scalar_type_and_size is called with a vector typed scalar_type (from basic-block vectorization). Your case ends up with character(kind=1)[1:4] which has SImode. The issue is that we really would only care for the component mode (and we make sure it is either int or float mode), but not really for what type it does represent (I can imagine we'll happily create a vector type of RECORD_TYPE components this way). Nothing on the GIMPLE level is prepared for non-scalar types here though, so I'm not sure what issues we run into with this right now. OTOH vectorization will very likely fail later anyway if we are not only presented with a memory copy loop. So, for gimple hygiene we should reject component types we cannot easily handle.