Extensão do GCC não documentada: VLA in struct
Enquanto lia a documentação do Clang, me deparei com o seguinte intrigante detalhe:[1]
clang não suporta a extensão gcc que permite matrizes de comprimento variável em estruturas. Isto é por algumas razões: uma, é difícil de implementar, duas, a extensão é completamente não documentada e, três, a extensão parece ser raramente usada. Observe que o clang suporta membros de matriz flexíveis (matrizes com um tamanho zero ou não especificado no final de uma estrutura).
Como esta extensão pode ser usada? Meu entendimento é que usar o alloca em um construtor faz com que o ponteiro da pilha seja restaurado no final da função de chamada, que nesse caso seria o construtor - não no final da estrutura envolvente.
Obrigado pela ajuda!