When doing an allocation, the three following functions can be called
before AllocatableAllocate.
- AllocatableInitIntrinsic
- AllocatableInitCharacter
- AllocatableInitDerived
When the descriptor is allocated, make sure these three function do not
reset it so the double allocation can be caught by AllocatableAllocate
later.
Like Establish functions, these Init functions should make no assumptions about the contents of the descriptor before they are called. I think that your change depends on lowered code initializing the base addresses of new allocatables to null pointers.