Damian’s table is an excellent summary. I reproduce it here for the sake of better visibility:
| Bounds-preserving | Fortran feature |
|---|---|
| True | intrinsic assignment |
| True | source allocation without specified bounds |
| True | allocatable, assumed-shape dummy argument |
| True | associate name |
| False | non-allocatable, assumed-shape dummy argument |
| False | function result |