Можно ли заставить компилятор не оптимизировать хвостовую рекурсию? - PullRequest
2 голосов
/ 07 сентября 2011

Представьте себе этот код:

int foo() {
  return foo();
}

Компилятор может оптимизировать это.Могу ли я заставить компилятор использовать новый кадр стека для foo вместо того же самого кадра стека (для каждого случая, поэтому полное отключение оптимизации не считается)?

Ответы [ 2 ]

8 голосов
/ 07 сентября 2011

Да, с опцией -fno-optimize-sibling-calls.

1 голос
/ 07 сентября 2011

В gcc попробуйте либо:

  • -O0
  • -fno-оптимизируют-родственный-звонки
...