https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68971
--- Comment #7 from Martin Sebor <msebor at gcc dot gnu.org> --- I didn't mean to sound like I was lecturing you, just trying to draw a clear distinction between the cases. Perhaps what's needed is for GCC to treat the builtins as constant expressions when they're invoked with them as operands. If you agree with that approach, I suggest closing this bug and opening a new one with that request. FWIW, in my experience, because sophisticated warnings that try to avoid issuing false positives for unreachable code (e.g., -Wmaybe-uninutialized) depend on optimizations they tend to be inconsistent not only between optimization settings but also between different targets. That in turn causes hard to prevent build failures for the same code, which prompts some people/teams to disable them altogether.