------- 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