https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49974
--- Comment #9 from Marc Glisse <glisse at gcc dot gnu.org> --- gcc is unable to look through dynamic static initializers, even with -flto or -fwhole-program. If you use constexpr, you can make the program fail to compile. (adding your warning would be good, I just wanted to clarify what we already have)