This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] C undefined behavior fix
- From: mike stump <mrs at windriver dot com>
- To: dewar at gnat dot com, paulus at samba dot org
- Cc: gcc at gcc dot gnu dot org, linux-kernel at vger dot kernel dot org, trini at kernel dot crashing dot org, velco at fadata dot bg
- Date: Wed, 9 Jan 2002 11:53:37 -0800 (PST)
- Subject: Re: [PATCH] C undefined behavior fix
> From: dewar@gnat.com
> To: dewar@gnat.com, mrs@windriver.com, paulus@samba.org
> Cc: gcc@gcc.gnu.org, linux-kernel@vger.kernel.org, trini@kernel.crashing.org,
> velco@fadata.bg
> Date: Tue, 8 Jan 2002 21:13:43 -0500 (EST)
> Yes, of course! No one disagrees. I am talking about *LOADS* not
> stores, your example is 100% irrelevant to my point, since it does
> stores.
Ok, in the bodies of those, put in
j1=c1;
j2=c2;
j3=c3;
With new definitions for j1, j2 and k3 as being volatile. Accesses are volatile:
[#2] Accessing a volatile object, modifying an object,
modifying a file, or calling a function that does any of
those operations are all side effects
So, I would claim that the case is symetric with writing volatiles.
If the standard doesn't make a distinction for write v read, then you
can't and claim that distinction is based in the standard. If you
claim the standard does make a distinction, please point it out, I am
unaware of it.