私のシステムのファイル/usr/include/c++/4.9/atomic
のg ++ソースコードでは、関数atomic::compare_exchange_strong
は次のような本体を持っています。g ++ソースで `__atomic_compare_exchange`がどこに定義されていますか?
bool
compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s,
memory_order __f) noexcept
{
return __atomic_compare_exchange(&_M_i, &__e, &__i, false, __s, __f);
}
しかし、このファイルには、bits/atomic_base.h
含まれており、私は、このファイルに__atomic_compare_exchange
の定義を見つけられませんでした。
__atomic_compare_exchange
はどこですか?
https://github.com/gcc-mirror/gcc/blob/03a400fb461fdc020418f3841d446f565e208db3/gcc/builtins.c#L5091:それを表現するx86命令はsync.mdという名前の別のプラットフォーム固有のジェネレータファイルに記載されています –