https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119278
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 60751
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60751&action=edit
gcc15-pr119278.patch
Untested fix. The STRING_CST case looks wrong to me, STRING_CSTs certainly
can have embedded zeros and strcmp will compare only up to the first '\0'.
Now, for STRING_CST, most likely TREE_STRING_LENGTH should be the same if the
types are the same because type of a STRING_CST is usually ARRAY_TYPE with some
INTEGER_TYPE element type and the array extent should match TREE_STRING_LENGTH.
So, the comparison is there just in case, perhaps gcc_assert would work too.
While for RAW_DATA_CST, type is the type of each element, so say
char_type_node,
and so comparing length is essential.