https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100950
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- So we hit /* Check if a STRING_CST fits into the field. Tolerate only the case when the NUL termination does not fit into the field. */ static bool check_string_literal (tree string, unsigned HOST_WIDE_INT size) { ... if (mem_size != size) return false; so in this case the NUL termination is missing. TREE_STRING_LENGTH is 1 but the field size is 2. The CTOR is {"a", "b"} and has a type of char[2][2]. Looks like a FE bug to me.