Problems with inline assembler in gcc-3.2

Richard Henderson rth@redhat.com
Fri Oct 25 16:27:00 GMT 2002


On Fri, Oct 25, 2002 at 02:40:54PM +0530, Jaimon Jose wrote:
> static inline int atomic_inc(volatile int *p)
> {
> 	__asm__ __volatile__(
> 		"lock; incl %0"
> 		:"=m" (*p)
> 		:"0" (*p));

You're in dicey territory here.  The compiler believes that
you have two references to a volatile memory, and so it can't
put them at the same location.  This is clearly not what you
intended.

File a bug.  This should be handled more gracefully.


r~



More information about the Gcc-bugs mailing list