On Sun, 2007-10-28 at 18:37 -0700, David Miller wrote: > From: "Dave Korn" <[EMAIL PROTECTED]> > Date: Mon, 29 Oct 2007 01:16:07 -0000
> The compiler simply cannot speculatively load or store to variables > with global visibility. I think it can. > Suggesting volatile is totally impractical and in fact overkill. > > Even basic correct single-threaded UNIX programs are broken by these > speculative stores. If I use a conditional test to protect access to > memory mmap()'d with a read-only attribute, GCC's optimization will > cause write-protection exceptions. That is the programmers fault, they should have accessed the variable using a const. Failing to do so gives the compiler permission to write speculatively. -- John Skaller <skaller at users dot sf dot net> Felix, successor to C++: http://felix.sf.net