Цитата(antiwin @ Jul 2 2009, 11:30)

Ну я так подозреваю выход есть в написании скрипта, анализирующий синтаксис всех сишников. Но это уже делает компилятор, неужели никак нельзя.
В плюсах можно извернуться
Код
void* f_int(int a, long b, int type)
{
// ваша функция
}
class TRet
{
int a;
long b;
public:
TRet(int a, long b) : a(a), b(b) {}
operator int*() { return f_int(a, b, 1); }
operator float*() { return f_int(a, b, 2); }
};
TRet f(int a, long b) { return TRet(a, b); }
Вызовы конструктора и операторов преобразования скорее всего будут проинлайнены и все сведется к вызову f_int
Цитата(antiwin @ Jul 2 2009, 11:30)

Ну я так подозреваю выход есть в написании скрипта, анализирующий синтаксис всех сишников. Но это уже делает компилятор, неужели никак нельзя.
Максимальный размер стека может зависеть от входных данных, так что анализ текста программы не поможет. Тут надо строить какие-то допущения на основании знания логики ее работы, или просто запустить программу и посмотреть, сколько стека она скушала