Требуется ли, чтобы массив C переменной длины выделялся из стека?

После удаления всех вызовов malloc и calloc из нашего кода для встроенной системы, я с удивлением обнаружил, что malloc все еще связывается. График вызовов указал мне на функцию, у которой не было явных вызовов * alloc и никаких вызовов любые библиотечные функции, которые могут выделять, например,strdup.
Мне пришлось посмотреть на сгенерированную сборку, чтобы понять, что это из-за встроенной функции, которая содержит VLA.

Я думал, что VLA должны быть распределены в стеке. Этот компилятор сломан?

Ответы на вопрос(2)

Ваш ответ на вопрос