Fair enough. I intend to test it myself too, probably later today.
The entire struct is volatile, so any operation on any field in the struct that might normally get optimized (e.g. setting a bit and then clearing it again) won't (shouldn't) get optimized away because of the volatile keyword...