From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28709 invoked by alias); 27 Jun 2011 09:10:23 -0000 Received: (qmail 28694 invoked by uid 22791); 27 Jun 2011 09:10:22 -0000 X-SWARE-Spam-Status: No, hits=-2.7 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 27 Jun 2011 09:10:07 +0000 From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/49536] latent bug in FSF gcc with creation of vector of arrays X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: middle-end X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: rguenth at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Status Last reconfirmed AssignedTo Summary Ever Confirmed Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Mon, 27 Jun 2011 09:10:00 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2011-06/txt/msg02292.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49536 Richard Guenther 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 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.