This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Why doesn't combine like volatiles? (volatile_ok again, sorry!)
On Sun, 2005-11-27 at 03:14, Mike Stump wrote:
> On Nov 22, 2005, at 7:52 AM, Richard Earnshaw wrote:
> > 3) A volatile load isn't moved across any store that may alias (though
> > I'd expect that to be volatile if there's a real risk of aliasning, so
> > maybe we could have another dimension in the 'may-alias' test here).
>
> ? Is this just a restatement of the general rule that one cannot
> move a load across a store that may alias? If so, we don't need to
> list it here, as it comes under the normal rules of what one may not
> do, and sense we don't relist all of them, there isn't any point in
> listing any of them.
Possibly, but I think the more interesting observation is listed in
parenthesis: Can a volatile access ever alias a non-volatile access?
Logic would suggest that a program is unpredictable if written in such a
way that permits such aliases to exist, since it would mean a location
is being accessed in both non-volatile and volatile manner.
R.