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

Reply via email to