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] } ^