https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99944
--- Comment #2 from Vincent Lefèvre <vincent-gcc at vinc17 dot net> --- (In reply to Richard Biener from comment #1) > What's not correct with the diagnostic? The obfuscated printing of f[0]? Hmm... for the *(unsigned int *)(&f[0]) case, it is correct after all, though it should just say f[0]. But in the case with -fsanitize=undefined, gcc says that f may be used uninitialized. But f is automatically initialized; it is f[0] that may be used uninitialized.