https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89785
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- Also consider the equivalent(?) constexpr foo() { throw 42; } // with or without constexpr constexpr int Addrlen(int domain) { switch (domain) { case 0: return 0; case 2: return 42; } foo(); } if Addrlen is allowed to be constexpr when foo() is not called [and is not declared constexpr]. And whether foo may be declared constexpr or not.