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

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
The STRING_CST isn't handled by native_encode_string which is why it fails:

static int
native_encode_string (const_tree expr, unsigned char *ptr, int len, int off)
{
  tree type = TREE_TYPE (expr);
  HOST_WIDE_INT total_bytes;

  if (TREE_CODE (type) != ARRAY_TYPE
      || TREE_CODE (TREE_TYPE (type)) != INTEGER_TYPE
      || (GET_MODE_BITSIZE (SCALAR_INT_TYPE_MODE (TREE_TYPE (type)))
          != BITS_PER_UNIT)
      || !tree_fits_shwi_p (TYPE_SIZE_UNIT (type)))
    return 0;

not sure why it only handles byte-sized literals, possibly endianess
related.

Going to handle those like fixed-point support (build a tree int and
encode that...).

Reply via email to