On 08/03/2015 06:32 PM, Jeffrey Walton wrote: >> >> It's OK to cast a pointer to int to a pointer to volatile int and then >> dereference that pointer, but not vice versa. So, GCC must assume >> that a pointer to volatile int may point to a non-volatile int object. >> But the reverse is not true: GCC need not assume that a pointer to int >> may point to a volatile int. > > One last question, and then I will be done. Is it OK to do in C++03 and above. I don't think that there is any difference between C and C++ in this regard, nor any intention to change it in later standards. To break compatibility in this way would be catastrophic for a lot of software. Andrew.