In a certain circumstance, the execution of a sourced allocation statement does not allocate the pointer (and there is no allocation error); it's as if the statment was just skipped. It's pretty clear that the 13.0 compiler has generated some bad object code. This error appears to be triggered when the pointer is a derived type with an allocatable CLASS(*) component, and the pointer is the result variable of the enclosing function. I've attached a short example code that demonstrates the bug.
For more complete information about compiler optimizations, see our Optimization Notice.