[Ada] Fix to 64-bit atomic operation failures on ppc-linux

Richard Henderson rth@redhat.com
Tue Jul 17 15:55:00 GMT 2012


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~



More information about the Gcc-patches mailing list