Re: [Boost-bugs] [Boost C++ Libraries] #5129: Doesn't handle alignment correctly

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #5129: Doesn't handle alignment correctly
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-10-22 22:17:31


#5129: Doesn't handle alignment correctly
-------------------------------+--------------------------------------------
  Reporter: anonymous | Owner: pdimov
      Type: Bugs | Status: new
 Milestone: To Be Determined | Component: bind
   Version: Boost 1.44.0 | Severity: Problem
Resolution: | Keywords:
-------------------------------+--------------------------------------------
Description changed by viboes:

Old description:

> The following example won't compile on VS 2008 boost v 1.44:
>
> #include "boost/bind.hpp"
> #include "xmmintrin.h"
>
> void example( const __m128& )
> {}
>
> int main()
> {
> boost::bind( example, __m128() )();
> }
>
> The reason being that __m128 doesn't have default alignment, causing the
> following error: "error C2719: 'a1': formal parameter with
> __declspec(align('16')) won't be aligned". The example function in this
> case would be able to take the argument, the culprit is in the
> constructor of list1 which takes accepts by value, when in this case we'd
> need to accept by const reference ( I presume without being familiar with
> the details of binds implementation ).

New description:

 The following example won't compile on VS 2008 boost v 1.44:


 {{{
 #include "boost/bind.hpp"
 #include "xmmintrin.h"

 void example( const __m128& )
 {}

 int main()
 {
         boost::bind( example, __m128() )();
 }
 }}}


 The reason being that __m128 doesn't have default alignment, causing the
 following error: "error C2719: 'a1': formal parameter with
 __declspec(align('16')) won't be aligned". The example function in this
 case would be able to take the argument, the culprit is in the constructor
 of list1 which takes accepts by value, when in this case we'd need to
 accept by const reference ( I presume without being familiar with the
 details of binds implementation ).

--
-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/5129#comment:2>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:10 UTC