[Bug c++/87951] GCC warns about reaching end of non-void function when all switch is completely handled
safinaskar at mail dot ru
gcc-bugzilla@gcc.gnu.org
Sat Dec 8 17:46:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87951
Askar Safin <safinaskar at mail dot ru> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |safinaskar at mail dot ru
--- Comment #7 from Askar Safin <safinaskar at mail dot ru> ---
"g++ -fstrict-enums" doesn't disable warning if I use "enum class" instead of
plain enum.
This is test code:
///
enum class Enum {
A,
B,
};
int CoverMyBases(Enum x) {
switch (x) {
case Enum::A:
return 1;
case Enum::B:
return 0;
}
}
int main(int argc, const char **argv) {
CoverMyBases(Enum::A);
CoverMyBases(Enum::B);
return 0;
}
///
This is command line:
g++ -fstrict-enums a.cpp
This is gcc version: gcc version 8.2.0 (Debian 8.2.0-10)
And I get this:
a.cpp: In function ‘int CoverMyBases(Enum)’:
a.cpp:13:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
More information about the Gcc-bugs
mailing list