Opened 15 years ago

Closed 15 years ago

#1314 closed Bugs (fixed)

Using SSE-intrinsics in VC8 causes static assert in type_with_alignment.hpp

Reported by: Andreas Brinck <andreas.brinck@…> Owned by: John Maddock
Milestone: Boost 1.36.0 Component: type_traits
Version: Boost 1.34.1 Severity: Problem
Keywords: Cc:

Description

When I create a class containing the SSE-intrinsic m128 in VC8 and try to serialize it with the boost serialization library the following static assert in type_with_alignment is triggered:

BOOST_STATIC_ASSERT(found % Align == 0);

Align is in my case 8 and the SSE-intrinsics are aligned to 16. Including m128 in BOOST_TT_ALIGNMENT_BASE_TYPES fixes the problem:

#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \
        13, ( \
        char, short, int, long,  ::boost::long_long_type, float, double, long double \
        , void*, function_ptr, member_ptr, member_function_ptr, __m128))

I guess that many other compilers have their own SSE-intrinsics defined so a more generic solution would of course be desirable.

Change History (3)

comment:1 by John Maddock, 15 years ago

As mentioned on the list, I won't destabilise the 1.35 release by fixing this yet, but I will for 1.36 if possible.

John Maddock.

comment:2 by John Maddock, 15 years ago

Milestone: To Be DeterminedBoost 1.36.0
Status: newassigned

comment:3 by John Maddock, 15 years ago

Resolution: fixed
Status: assignedclosed

I believe this should be fixed in SVN Trunk now with revision #43952.

Regards, John.

Note: See TracTickets for help on using tickets.