[Boost-bugs] [Boost C++ Libraries] #5537: boost.mpi miscompiles with gcc4.6 and option -std=c++0x

Subject: [Boost-bugs] [Boost C++ Libraries] #5537: boost.mpi miscompiles with gcc4.6 and option -std=c++0x
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-05-13 08:24:31


#5537: boost.mpi miscompiles with gcc4.6 and option -std=c++0x
--------------------------------------------------+-------------------------
 Reporter: christophe.prudhomme@… | Owner: dgregor
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: mpi
  Version: Boost 1.46.1 | Severity: Regression
 Keywords: mpi stdc=c++0x |
--------------------------------------------------+-------------------------
 Hello

 boost.mpi with gcc-4.6 and the option -std=c++0x don't get well together
 here is a very simple example

 ----- t.cpp
 #include <boost/mpi.hpp>
 ------ end of t.cpp

  the issue arises with the use of the -std=c++0x flag to use
 the new c++ standard. It use to work properly with previous g++ version

 compile without -std=c++0x
 g++ -I/usr/include/mpi -c t.cpp
 no errors

 try compiling with -std=c++0x
  g++ -I/usr/include/mpi -std=c++0x -c t.cpp

                                               2011-05-12 22:40:17
 prudhomm pts/28
 In file included from /usr/include/c++/4.6/memory:67:0,
                 from /usr/include/boost/mpi/allocator.hpp:18,
                 from /usr/include/boost/mpi.hpp:22,
                 from t.cpp:3:
 /usr/include/c++/4.6/bits/stl_uninitialized.h: In function ‘void
 std::__uninitialized_default_n_a(_ForwardIterator, _Size, _Allocator&)
 [with _ForwardIterator = char*, _Size = long unsigned int, _Allocator
 = boost::mpi::allocator<char>]’:
 /usr/include/c++/4.6/bits/vector.tcc:474:8: instantiated from ‘void
 std::vector<_Tp, _Alloc>::_M_default_append(std::vector<_Tp,
 _Alloc>::size_type) [with _Tp = char, _Alloc =
 boost::mpi::allocator<char>, std::vector<_Tp, _Alloc>::size_type =
 long unsigned int]’
 /usr/include/c++/4.6/bits/stl_vector.h:592:4: instantiated from
 â€˜void std::vector<_Tp, _Alloc>::resize(std::vector<_Tp,
 _Alloc>::size_type) [with _Tp = char, _Alloc =
 boost::mpi::allocator<char>, std::vector<_Tp, _Alloc>::size_type =
 long unsigned int]’
 /usr/include/boost/mpi/detail/packed_oprimitive.hpp:96:46:
 instantiated from here
 /usr/include/c++/4.6/bits/stl_uninitialized.h:576:6: error: no
 matching function for call to
 â€˜boost::mpi::allocator<char>::construct(char*)’
 /usr/include/c++/4.6/bits/stl_uninitialized.h:576:6: note: candidate is:
 /usr/include/boost/mpi/allocator.hpp:168:8: note: void
 boost::mpi::allocator<T>::construct(boost::mpi::allocator<T>::pointer,
 const T&) [with T = char, boost::mpi::allocator<T>::pointer = char*]
 /usr/include/boost/mpi/allocator.hpp:168:8: note: candidate expects
 2 arguments, 1 provided

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/5537>
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:06 UTC