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

Reply via email to