https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83778

--- Comment #1 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
It does look like an issue with r256448, but I haven't been able to reproduce
it here yet.

There are 3 in-tree copies of get_element_number, in 3 backends; each has 2
users per backend; they all look like:

static int
get_element_number (tree vec_type, tree arg)
{
  unsigned HOST_WIDE_INT elt, max = TYPE_VECTOR_SUBPARTS (vec_type) - 1;

  if (!tree_fits_uhwi_p (arg)
      || (elt = tree_to_uhwi (arg), elt > max))
    {
      error ("selector must be an integer constant in the range 0..%wi", max);
      return 0;
    }

  return elt;
}

which is going to fail if a location wrapper node around a INTEGER_CST is
passed for ARG, rather than a plain INTEGER_CST.

Reply via email to