And perhaps look into the deincrementing index registers of the IBM 705. The modern explanation is that Fortran indexes start at one, but historically they were limits, not starting address IMHO.
I am not sure that flang found a way to free local memory when it went out of scope, But if you think about the implications it may help.
GFORTRAN uses cray pointers, which also track a pointee
https://polly.llvm.org/
And perhaps look into the deincrementing index registers of the IBM 705. The modern explanation is that Fortran indexes start at one, but historically they were limits, not starting address IMHO.
I am not sure that flang found a way to free local memory when it went out of scope, But if you think about the implications it may help.
GFORTRAN uses cray pointers, which also track a pointee
Good luck with your language.