https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123782
--- Comment #1 from Ivan Pribec <ivan.pribec at gmail dot com> --- Here are a few ways to determine the contiguity: print *, is_contiguous(a) print *, is_contiguous(a(:)%x) print *, sizeof(0.0) == (loc(a(2)) - loc(a(1))) associate(x => a%x) print *, sizeof(0.0) == (loc(x(2)) - loc(x(1))) end associate The output produced is T F T T No temporaries are created (checked with -fcheck=array-temps). It looks like the contiguous property is lost in the array component selection expression a%x.
