[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] i386 linux: make 32-bit PAE kernel work when built with newer gcc




On 14 Mar 2006, at 12:40, Jan Beulich wrote:

I'm not sure this is correct - the standard, in section 5.1.2.3, says

"Accessing a volatile object, modifying an object, modifying a file, or calling a function that does any of those operations are all side effects, which are changes in the state of the execution environment. Evaluation of an expression may produce side effects. At certain specified points in the execution sequence called sequence points, all side effects of previous evaluations shall be complete and no side effects of subsequent evaluations
shall have taken place."

As we're talking about modifying an object, this being considered a side-effect means it
must have been carried out by the time the ; is (logically) reached.

See 5.1.2.3.5 and then the examples 5.1.2.3.8 and 5.1.2.3.9 (particularly the first sentence, which summarises the guarantee provided by an aggressive optimising C compiler).

The standard is really not clear in this respect, but I take 5.1.2.3.2 to apply to the abstract machine, and not necessarily an implementation. But I am not a compiler writer. :-)

 -- Keir


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.