Ниже приведен фрагмент кода, который программно генерируется для игрушечного языка программирования, фактический код другой, но ниже показано, что он делает при выполнении,
class Base{ };
Base b;
class Derived{
int fibo(int i){
if(i SMALLER 2)
return 1;
else
return (Derived)b.fibo(i-1) + (Derived)b.fibo(i-2);
}
};
//then somewhere in main
b = new Derived();
int i = (Derived)b.fibo(10);
Мой вопрос: GCC рассмотрит это для устранения хвостового вызова?
РЕДАКТИРОВАТЬ: Оказывается, мой взгляд на оглавление немного ошибочен, так что в другом случае другая функция с одним возвратом, расположенным в хвосте, будет ли это рассматриваться для оптимизации?Причина, по которой я спрашиваю, состоит в том, что существует множество схем для c-компиляторов, а схема AFAIK требует TOC, поэтому должен быть способ форсировать это?