egcs-1.1: fix for volatile bug
Mark Powell
medp@primag.co.uk
Tue Jan 12 02:10:00 GMT 1999
On Mon, 11 Jan 1999, Mark Powell wrote:
> The following bug was observed in egcs-1.1b and egcs-1.1.1 configured
> for m68k-coff.
>
> Assignment operations through a pointer variable declared volatile
> produce multiple accesses. This can cause incorrect behaviour when the
> destination of the write is a register in a peripheral device and the
> device expects a series of values to be written to the same address.
>
> The bug is triggered when compiling with no optimisation. Optimisation
> levels of -O1 and above do not exhibit the bug.
For info, the bug is fixed in current snapshots.
The fix was well commented so I was able to narrow it down very quickly.
A patch for egcs-1.1.1 is attached. It should apply to egcs-1.1b
equally well.
Mark
--
Mark Powell, Senior Software Engineer, Primagraphics Limited
New Cambridge House, Litlington, nr.Royston, Herts, SG8 0SS, UK
Tel. +44 1763 852222, Fax. 853324, medp@primag.co.uk, http://www.primag.co.uk
More information about the crossgcc
mailing list