Stuart Ballard wrote:

>I have no idea what a line of code that uses three : operators in a row
>could possibly mean (in either language) and I can't find the source
>code file to get context. But my guess is that the tokenizer is seeing
>:: and thinking "ooh, class member operator" (or whatever that operator
>is called in c++), and it doesn't occur to it that it might actually be
>two separate ":" operators.
>

That would be my guess too, since (after reading the GCC manual) it 
turns out that ":::" is not a trigraph after all.

>Anyone know what these three ":" operators are actually supposed to be
>doing in this case? 
>

It was an inline asm statement, which has no operands. In this case I'll 
bet its there as a write barrier to synchronize memory before releasing 
a lock. On x86, the hardware never reorders writes (ie another CPU 
cannot see a lock as released before any previous writes to memory were 
completed), but having an empty inline asm with the "memory" flag is a 
safeguard to ensure that GCC will not reschedule writes across the lock 
either.

regards

Bryce.



_______________________________________________
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath

Reply via email to