为什么clang无限递归终止?

时间:2016-11-16 22:50:54

标签: c++ gcc recursion clang tail-recursion

通过-O2启用尾调用优化,以下程序按预期使用GCC无休止地运行。然而,对于Clang,程序终止并输出一个值;每次都显然不同。有谁知道为什么?

#include <iostream>

int rec()
{
  return 1 + rec();
}

int main(int argc, char *argv[])
{
  int r;
  r = rec();
  std::cout << r << '\n';
  return 0;
}

0 个答案:

没有答案