https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88490
--- Comment #3 from Daniel Fruzynski <bugzi...@poradnik-webmastera.com> --- In this case s->d is pointer to pointer to double, and both pointer levels have restrict qualifier. I wonder if you could add some tag that s->d[n] and s->d[k] points to separate memory areas. This tag could be later used to determine that s->d[n][0] and s->d[k][0] also do not overlap.