Re: __sync_bool_compare_and_swap() With a Pointer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Nov 18, 2012 at 9:10 PM, Hei Chan <structurechart@xxxxxxxxx> wrote:
>
> According to http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Atomic-Builtins.html, __sync_bool_compare_and_swap() supports int, long, long long, and their unsigned counterparts, and GCC will allow any integral scalar or pointer type that is 1, 2, 4 or 8 bytes in length.
>
> I wonder in what situation the pointer type won't be 1, 2, 4 or 8 bytes in length.  Let's say I am running on a 64-bit Intel CPU.

On a 64-bit Intel CPU pointer types will always be either 4 or 8 bytes
(4 bytes if using x32).

Remember that GCC supports many different targets.  In any case the
sentence does not imply that there will ever be a pointer type that is
not 1, 2, 4 or 8 bytes (though of course there will be if GCC ever
supports a 128-bit machine).  The sentence also refers to integral
types, and GCC supports integral types larger than 8 bytes on some
processors, e.g., __int128_t on x86_64.

Ian



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux