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?

_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to