Ruediger Pluem wrote:

Not quite sure if this is really correct because apr_atomic_casptr
wants to have a (volatile void**) as first parameter.

  That's what made me less than sure ... but my gcc 4.1.2 -Wall
definitely doesn't like that void** ("dereferencing type-punned pointer ...").

  I think void* should be OK, because the APR function still
gets a pointer-sized parameter, and casts it to (volatile void**)
locally, which is presumably what really matters: that within the CAS
function the optimizer understands that the pointed-to value (another
pointer, in this case) can be changed by something else it doesn't
know about, and so won't optimize away any accesses.

  But ... I'm no expert on these kinds of compiler guts.  Revert if
it seems wrong and better to spew some warnings.

Chris.

--
GPG Key ID: 366A375B
GPG Key Fingerprint: 485E 5041 17E1 E2BB C263  E4DE C8E3 FA36 366A 375B

Reply via email to