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