c++visual-c++unreachable-code

Visual C++ error: function must return a value


I am working on a multiplatform project, and some platforms have disabled features, and in the interface for those features, a common thing I do is something like this:

bool Foo::bar() const {
    // disabled
    abort();
}

GCC/LLVM do not require that non-void functions return values (they just give a warning), and in this case, where I call abort(), they are smart enough to not even give a warning (since the function will never return anyway).

Is there a way (compile flag?) to make Visual C++ 2010 behave the same way, so I don't keep breaking the Windows build? I know I could always return the value after the abort, but when working on the other platforms I usually forget about that, and the behavior of not giving an error seems more appropriate.


Solution

  • As you want to disable the error add /w34716 as compile flag (assuming you are using warning level 3 or higher) - now only a warning is issued (if the warning level is 3 or higher). You could also disable the warning (/wd4716), but that is probably no good idea - depending on the number of warnings due to this behaviour.