[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 4/4] xen/public: arm: rework the macro set_xen_guest_handle_raw
Ian Campbell writes ("Re: [Xen-devel] [PATCH 4/4] xen/public: arm: rework the macro set_xen_guest_handle_raw"): > The writer via one is the guest and reader via the other is the hypervisor, > so no matter what they are certainly different compilation units, even in > the face of whole program optimisations. The question of them being different `compilation units' (YM translation units) is irrelevant I think. > The concerning issue is that if the compiler can observe you writing to > both halves of the union then it can either omit the first write or dive > off into deep undefined behaviour territory. If the compiler can see you write to p, it is allowed to assume that all subsequent readers will read the object as typeof(p). Reading typeof(p) does not read the padding. Therefore the compiler is allowed to `prove' that the padding is a dead store, and remove the write to the padding. This applies even if the compiler can't see the code which is doing the reading. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |