https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99117
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to work|7.5.0, 8.4.0 | CC| |jakub at gcc dot gnu.org --- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- int* p = sum._M_data; int* e1 = sum._M_data; If p and e1 aren't __restrict__ too, shouldn't that be fine? Reading the same value multiple times shouldn't create new clique each time it is read. Though, isn't it before optimization a different argument instead? I'd think even that should be ok, because using __restrict__ from FIELD_DECLs is only ok if we can prove it is different structs (say pointers to them also being restrict), but the current aliasing code probably doesn't do that.