Messages in this thread | | | From | Linus Torvalds <> | Date | Mon, 15 Nov 2010 11:21:30 -0800 | Subject | Re: gcc 4.5.1 / as 2.20.51.0.11 miscompiling drivers/char/i8k.c ? |
| |
On Mon, Nov 15, 2010 at 11:12 AM, Jakub Jelinek <jakub@redhat.com> wrote: > > Ah, the problem is that memory_identifier_string is only initialized in > ipa-reference.c's initialization, so it can be (and is in this case) NULL in > ipa-pure-const.c.
Ok. And I guess you can verify that all versions of gcc do this correctly for "asm volatile"?
Because since we'll have to work around this problem in the kernel, I suspect the simplest solution is to remove the "+m" that causes register pressure problems, and then use "asm volatile" to work around the const-function bug.
And add a large comment about why "asm volatile" is probably always a good idea when you have a memory clobber and don't have any other visible memory modifications.
I do wonder if this explains some of the problems we had with the bitop asms too.
Hmm?
Linus
| |