On Mon, Mar 07, 2005 at 11:47:31AM -0000, Simon Marlow wrote: > $ cat bug.c > register void * R1 __asm__("%r13"); > > extern void g(void); > static void f(void) { > R1 = g; > goto *R1; > } > $ gcc -S -O bug.c > $ > > And take a look at the generated assembly for the function f: > > f: > .LFB2: > movl $g, %eax > jmp *%rax > > Note that the assignment to the global variable R1 has been lost. It > works fine on x86 though: change the register variable to %esi and try > it.
Hmm. On gcc 3.3.5 that I have, it discards the assignment on x86 as well. Dave _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users