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

--- Comment #6 from Martin Sebor <msebor at gcc dot gnu.org> ---
The warning in GCC 8 isn't bogus, it just reports the wrong number of bytes (it
counts characters, not bytes).  That the warning is no longer issued is a
regression caused by c_strlen() giving up when the size of the constant array
element doesn't match the expected size (in this case, sizeof(wchat_t) vs
sizeof(char)).  That change was made out of an abundance of caution in an
effort to avoid folding suspect expressions that were felt didn't need to be
folded (e.g., strlen((char*)L"\x41424344\x45464748")).  There's nothing
inherently wrong with folding those expressions, but they don't need to be
folded for GCC to understand their length and make use of it to issue warnings.

Reply via email to