extra: foo((void *)&x) writes to x probably