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: Sun, 6 Jan 2002 10:20:47 -0800 (PST)
- Subject: Re: [PATCH] C undefined behavior fix
> From: dewar@gnat.com
> To: dewar@gnat.com, paulus@samba.org
> Date: Sun, 6 Jan 2002 08:05:56 -0500 (EST)
> If you have a memory mapped byte, you really want a way of saying
> "when I read this byte, do a byte read, it will not work to do a
> word read"
> (volatile gets close in C, but is not close enough) will ensure a
> byte store in practice, but may not ensure byte reads.
? Do you have an example where this fails? Do you not consider it a
bug? Now, I would place a fair amount of buren on the compiler to get
it right, though, this isn't absolute. For example, eieieio or
whatever it is called on the powerpc. I think the chip/OS/MMU must
bear some responsibility for meeting its obligations to the compiler,
and if it doesn't, then that chip/OS/MMU fails to provide a reasonable
base on which to provide the compiler. Did you have this case in
mind?