https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106692
--- Comment #5 from anlauf at gcc dot gnu.org --- Just an observation: adding to subroutine shape_cray either save :: ptrzz or volatile :: ptrzz creates sufficient confusion in the middle-end that the code seems to work. (The code sample also works with Crayftn, whatever that means...)