On Thursday, 7 June 2018 at 22:23:09 UTC, Steven Schveighoffer wrote:
{...}

That a function could return does not mean it will.

int fn (int arg) /*strongly*/ pure
{
  if (arg == 42)
    return 42;
  else (arg < 43)
    return fn(--arg);
  else
    return fn(++arg);
}

do you see the problem?
If not you would you expect the compiler to ?

note: I would expected that the clang static analyzer
would be able to determine that depending on the value of arg
this function might never return.

Reply via email to