While a (non-standard) function allocagives an object whose lifetime is the calling function, the VLA lifetime is the block in which it is declared. However, the attachment is not related to any of them. A function call whose body is nested is still a function call, and the objects that it receives through allocacease to exist when it semantically returns, and not when the processor executes a ret statement or equivalent.
source
share