https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91020
--- Comment #2 from Martin Jambor <jamborm at gcc dot gnu.org> --- In the first example, even if we ignored the addressability, the individual array items, which are structures, are copied whole: D.2240[_27] = D.2241[_27] This complicates detection when separation into distinct arrays of scalars is legal, especially if there is any padding in the structure.