https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99992
Bug ID: 99992 Summary: Diagnose C++11 constexpr body that isn't just return even in uninstantiated templates Product: gcc Version: 11.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org CC: fdumont at gcc dot gnu.org, jakub at gcc dot gnu.org, marxin at gcc dot gnu.org, redi at gcc dot gnu.org Depends on: 99985 Target Milestone: --- +++ This bug was initially created as a clone of Bug #99985 +++ template <typename T> constexpr bool foo (T x) { if (x) return true; return false; } bool x = foo (0); If I comment the last line, with -std=c++11 we don't diagnose the: body of ‘constexpr’ function ‘...’ not a return-statement error. Could we (at least sometimes) diagnose this even on non-instantiated templates? That would help to catch the PR99985 libstdc++ bug more quickly. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99985 [Bug 99985] [10/11 Regression] bits/hashtable.h:483:9: error: body of ‘constexpr’ function ... not a return-statement since g:1cbba49e3417d9b0661e70301d6fb7a7f52fd360