https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89230
--- Comment #2 from lavr at ncbi dot nlm.nih.gov --- Okay, but "d" points to a clearly separate storage on stack within a local frame. None of the pointers passed to (s)printf() relate to that area (either they are also clearly separate within the current stack frame, automatic ("name", "type", "temp"); or the argument values, that function was called with ("pfx")), so how "d->D_fid[2]" can be changed, in GCC's point of view? I mean, within the semantics of the language, that's impossible; and the warning should only be issued for that kind of a (mis)use.