Possible regression in i386 build with gcc 4.6

Shane Ambler FreeBSD at ShaneWare.Biz
Mon Oct 8 02:02:24 UTC 2012


On 08/10/2012 08:40, Tijl Coosemans wrote:

>> inline long long
>> atomic_exchange_and_add (volatile long long *at, long long x)
>> {
>> #ifdef USE_GCC_ATOMICS
>>      return __sync_fetch_and_add (at, x);
>> #elif USE_TBB
>>      atomic<long long> *a = (atomic<long long> *)at;
>
> This cast is dangerous. It looks like atomic<long long> has 8 byte
> alignment, but long long on i386 only has 4 byte alignment.
>

Could that be the cause of the seg fault?

gcc42 just happens to generate it into a place that equals 8 byte align 
where gcc46 doesn't?



More information about the freebsd-ports mailing list