Я обнаружил, что когда мы используем вложенные функции, GCC требует исполняемый стек для кода батута. Однако следующий код при компиляции с использованием gcc не показывает исполняемый стек.(Я использовал execstack, чтобы проверить, является ли стек исполняемым)
#include
#include
int main()
{
int add( int a, int b)
{
return a + b;
}
return add(2, 3);
}
Почему это не приводит к исполняемому стеку?И если это не предполагается, то может кто-нибудь приведите пример конструкции кода, которая дает лиисполняемый стек?