Hello Rich, AFAIR these both occurred when compiling with -flto. I would not trust the static analysis of the compiler at 100 % either, but this is just an argument to have the volatile in. The compiler is telling us that here he thinks that an optimization might hide a intermittent write, but that by the aliasing rules it would be OK to save a read. So better be careful and trust the compiler that he is willing to do bad things :) Maybe LTO is broken, yet, in that it might do some optimizations that it shouldn't. Or maybe this exposes possible problems that were previously hidden because the write was in a different compilation unit than the read. Who knows. In any case, the performance hit should be limited, and my personal preference would tend towards safety and calming down the compiler. Jens -- :: INRIA Nancy Grand Est :: http://www.loria.fr/~gustedt/ :: :: AlGorille ::::::::::::::: office Nancy : +33 383593090 :: :: ICube :::::::::::::: office Strasbourg : +33 368854536 :: :: ::::::::::::::::::::::::::: gsm France : +33 651400183 :: :: :::::::::::::::::::: gsm international : +49 15737185122 ::