This documentation is archived and is not being maintained.

Compiler Warning (level 1) C4717

'function' : recursive on all control paths, function will cause runtime stack overflow

Every path through a function contains a call to the function. Since there is no way to exit the function without first calling itself recursively, the function will never exit.

The following code demonstrates how this warning would be generated:

// C4717.cpp
// compile with: /W1
// C4717 expected
int func(int x)
   if (x > 1) {
      return func(x - 1); // recursive call
   else {
      int y = func(0) + 1; // recursive call
      return y;

int main(){