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