Re: __sync_fetch_ prototypes.

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

 



thanks for the link, indeed
"
For the following intrinsics, <type> is either a 32-bit or 64-bit integer.
Atomic Fetch-and-op Operations

<type> __sync_fetch_and_add(<type> *ptr,<type> val)
...
"

clearly states that the types are signed and the same for the input/output values. So GCC implementation is probably bogus but as you say fixing it might imply legacy problems.

I logged the issue and the patch with http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41639

Thanks,

-c

Ian Lance Taylor wrote:
Christian BRUEL <christian.bruel@xxxxxx> writes:

Can I assume from the gcc sources that the __sync_fetch_ builtins take
only unsigned value as inputs, and thus also return unsigned values.

These builtins came from Intel.  This page

http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/lin/compiler_c/intref_cls/common/intref_itanium_synchro_prim.htm

suggests but does not clearly state that the return type should be the
same as the value type.  We could probably implement that in gcc, but
I think it would be awkward to simply change the sign of the return
type now; it might break currently working programs.

This is probably worth a bug report in any case.

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