/* * The use of a volatile pointer guarantees that the compiler * will not optimise the call away. */