https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86642

            Bug ID: 86642
           Summary: Spurious return type warning with enable_if<foo, void>
           Product: gcc
           Version: 8.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: steinar+gcc at gunderson dot no
  Target Milestone: ---

Hi,

The following program gives a warning with -Wall:

#include <type_traits>

std::enable_if<true, void>
func() {}

klump:~> g++-8 -O2 -std=gnu++14 -Wall -c test.cpp
test.cpp: In function ‘std::enable_if<true, void> func()’:
test.cpp:4:9: warning: no return statement in function returning non-void
[-Wreturn-type]
 func() {}
         ^

The function technically returns non-void, but in reality, it returns void
(nothing will ever look at its return type). Thus, the warning should not
really be there.

Same issue with 4.9, so no regression. Clang has the same issue.

Reply via email to