This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/34856] [4.3 Regression] ICE with some constant vectors
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Jan 2008 13:42:04 -0000
- Subject: [Bug middle-end/34856] [4.3 Regression] ICE with some constant vectors
- References: <bug-34856-6528@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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<vector signed char>({(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