On Wednesday, 29 April 2020 at 16:19:55 UTC, random wrote: And of course the workaround if you don't want to use restrict: int test(int * x, int * y, int * z) { int tmp = *z; *y = tmp; *x = tmp; return tmp; } Produces the same as the restrict version. https://godbolt.org/z/yJJcMK