Function with missing return value, behavior at runtime
Posted
by nabulke
on Stack Overflow
See other posts from Stack Overflow
or by nabulke
Published on 2010-04-08T06:54:02Z
Indexed on
2010/04/08
7:03 UTC
Read the original article
Hit count: 364
c++
As expected, the compiler (VisualStudio 2008) will give a warning
warning C4715: 'doSomethingWith' : not all control paths return a value
when compiling the following code:
int doSomethingWith(int value)
{
int returnValue = 3;
bool condition = false;
if(condition)
// returnValue += value; // DOH
return returnValue;
}
int main(int argc, char* argv[])
{
int foo = 10;
int result = doSomethingWith(foo);
return 0;
}
But the program runs just fine. The return value of function doSomethingWith() is 0.
Is is just undefined behavior, or is there a certain rule how the result value is created/computed at runtime. What happens with non-POD datatypes as return value?
© Stack Overflow or respective owner