https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42909
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #7) > (In reply to Andrew Pinski from comment #5) > > Created attachment 61618 [details] > > Patch which I am testing for the aarch64 issue > > But it miscompiles (there is no testcase for this though): > ``` > struct s1 { int x[1024]; }; > > void f(struct s1, struct s1); > > void g(struct s1 x) > { > f(x, x); > } > ``` > Where we need a copy of the incoming argument as we can only reuse it once. > > Let me think of how to fix that. I just need a `hash_set<tree>` which we add to as we process the arguments, since we are processing all the arguments in this function; it is just an additional few lines of code.