From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4638 invoked by alias); 21 Jan 2008 13:42:51 -0000 Received: (qmail 4437 invoked by uid 48); 21 Jan 2008 13:42:04 -0000 Date: Mon, 21 Jan 2008 14:16:00 -0000 Message-ID: <20080121134204.4435.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/34856] [4.3 Regression] ICE with some constant vectors In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenth at gcc dot gnu dot org" 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: 2008-01/txt/msg02337.txt.bz2 ------- Comment #3 from rguenth at gcc dot gnu dot org 2008-01-21 13:42 ------- Confirmed. In the latter case we const-propped the initializer into the V_C_E: VIEW_CONVERT_EXPR({(unsigned int) &g[16]}) which is of course neither CONSTANT_CLASS_P nor a gimple lvalue (but it is is_gimple_min_invariant, which is why we propagate it in the first place): /* Vector constant constructors are gimple invariant. */ case CONSTRUCTOR: if (TREE_TYPE (t) && TREE_CODE (TREE_TYPE (t)) == VECTOR_TYPE) return TREE_CONSTANT (t); else return false; The point is, that we do allow V_C_E expressions on rvalues, so the verification is simply bogus. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34856