https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86678
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2018-07-26 Ever confirmed|0 |1 --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- Reduced: void fail(); template <class T> constexpr int foo() { if (sizeof(T)) return 1; if (1) fail(); } constexpr int V = foo<int>(); a.cc:11:27: error: 'constexpr int foo() [with T = int]' called in a constant expression constexpr int V = foo<int>(); ~~~~~~~~^~ a.cc:4:15: note: 'constexpr int foo() [with T = int]' is not usable as a 'constexpr' function because: constexpr int foo() { ^~~ a.cc:8:11: error: call to non-'constexpr' function 'void fail()' fail(); ~~~~^~