Messages in this thread |  | | | Subject | Re: gcc-2.8.0 miscompiles kernel (Was: gcc-2.8 out...) | | From | Andi Kleen <> | | Date | 20 Jan 1998 01:07:00 +0100 |
| |
alan@lxorguk.ukuu.org.uk (Alan Cox) writes:
> > Hmmmmm, are you _sure_ that's a bug ? The cast says that the pointed > > value is volatile, not the pointer itself. So the compiler can, I > > think, still legally assume that the memory zone assigned through the > > pointer will be destroyed after the return. > > Oh bog.. I do indeed have the volabloodytile keyword in the wrong place > yes. Try it as he suggested and lets see > > > *((u32 * volatile)&eflags)=val; should make it behave though. I'm not > > really sure. That's quite a tricky part of the standard.
I just tested the (u32 * volatile) version. It still generates incorrect code with 2.8.0. It seems that gcc 2.8.0's doesn't check properly for volatile in the ADDRESSOF optimization.
-Andi
|  |