https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70552
--- Comment #4 from Martin Sebor <msebor at gcc dot gnu.org> --- As an aside, Clang does evaluate both __builtin_constant_p(foo()) expressions in the test case consistently to 1, and like GCC, also without emitting code for foo(). Also like GCC, it emits a definition of foo() if it's called in the program outside of a constexpr context (such as the __builtin_constant_p argument).