On 07/17/2012 03:15 AM, Arnaud Charlet wrote: > + function Sync_Compare_And_Swap_32 > (Ptr : Address; > Expected : uint32; > Desired : uint32) return uint32; > pragma Import (Intrinsic, > + Sync_Compare_And_Swap_32, > "__sync_val_compare_and_swap_4"); > > + function Sync_Compare_And_Swap_64 > (Ptr : Address; > Expected : uint64; > - Desired : uint64) return uint64; > + Desired : uint64) return Boolean; > pragma Import (Intrinsic, > + Sync_Compare_And_Swap_64, > - "__sync_val_compare_and_swap_8"); > + "__sync_bool_compare_and_swap_8");
Ignoring the name change, why return bool only for the 64-bit function? This is surely papering over some sort of bug elsewhere... r~