https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68462
--- Comment #3 from Manjeet Dahiya <manjeetdahiya at gmail dot com> --- (In reply to Andrew Pinski from comment #2) > N_domains and domain_array don't overlap at all and it is known to overlap > as writing past arrays bounds is undefined and is unrelated to strict > aliasing. Thanks for clarification. Can you please explain why GCC doesn't cache (N_domains) when we make the variable N_domains non-static. Is it the case that GCC missed the chance to exploit undefined behavior or something else?