> > We already do that. It doesn't stop gcc putting the return in the middle > > of the function. > > > > Paul > > void f1(); > void f2(); > > void f(int *z, int x, int y) > { > if (x) { > *z = x; > f1(); > } else { > *z = y; > f2(); > } > asm volatile (""); > } > > works, with gcc -O2 -fno-reorder-blocks. removing either the asm or the > -f flag doesn't. No idea if it's consistent across architectures.
It doesn't work reliably though. We already do everything you mention above. Paul _______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel