https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63851
--- Comment #4 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> --- (In reply to Martin Liška from comment #2) > There's a pair of functions 'g' and 'h' that are proved by IPA ICF to be > equal and thunk is created (darwin does not have alias support). If you look at the tree dump, h's argument has restrict but not g: h (struct array7_integer(kind=4) & restrict x) { check ((struct array7_integer(kind=4) *) x); } g (struct array7_integer(kind=4) & x) { check ((struct array7_integer(kind=4) *) x); } Shouldn't that disable semantic equality/equivalence?