これなら安全じゃろ。

void xorSwap(int * restrict x, int * restrict y)
{  *x ^= *y;
 *y ^= *x;
 *x ^= *y;
}

無責任極まりないやり口だけどな。