Re: [Boost-bugs] [Boost C++ Libraries] #11874: Compilation error with GCC4.6 in C++11 mode

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #11874: Compilation error with GCC4.6 in C++11 mode
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2017-07-12 09:10:29


#11874: Compilation error with GCC4.6 in C++11 mode
-------------------------------+-----------------------------------------
  Reporter: Antony Polukhin | Owner: Emil Dotchevski
      Type: Bugs | Status: reopened
 Milestone: To Be Determined | Component: exception
   Version: Boost 1.64.0 | Severity: Regression
Resolution: | Keywords: c++11 exception type_traits
-------------------------------+-----------------------------------------

Comment (by Richard Hazlewood <boost@…>):

 Had same issue, but can confirm it does compile on the ''develop'' branch
 - not surprising because the code (''error_info_impl.hpp'') is guarded
 with:
 {{{
 #if (__GNUC__*100+__GNUC_MINOR__!=406) //workaround for g++ bug
 }}}

 We found that boost::thread fails to compile with the 1.64.0 release.\\
 Compiler call (with -d2):\\
 (Our ''user-config.jam'' points to g++4.6.4 with ''-std=c++0x'').

 {{{
 ./b2 --user-config=./user-config.jam toolset=gcc-std0x link=static -q -d2
 --with-thread
 }}}

 {{{
 gcc.compile.c++ bin.v2/libs/thread/build/gcc-std0x/release/link-static
 /threading-multi/pthread/thread.o

     "g++" -ftemplate-depth-128 -std=c++0x -O3 -finline-functions -Wno-
 inline -Wall -pedantic -pthread -m64 -Wextra -Wno-long-long -Wno-unused-
 parameter -Wunused-function -pedantic -DBOOST_ALL_NO_LIB=1
 -DBOOST_SYSTEM_STATIC_LINK=1 -DBOOST_THREAD_BUILD_LIB=1
 -DBOOST_THREAD_DONT_USE_CHRONO -DBOOST_THREAD_POSIX -DNDEBUG -I"." -c -o
 "bin.v2/libs/thread/build/gcc-std0x/release/link-static/threading-
 multi/pthread/thread.o" "libs/thread/src/pthread/thread.cpp"

 In file included from ./boost/config.hpp:61:0,
                  from ./boost/thread/detail/config.hpp:11,
                  from libs/thread/src/pthread/thread.cpp:9:
 ./boost/exception/info.hpp:67:42: error: declaration of
 â€˜boost::error_info<Tag, T>::error_info(boost::error_info<Tag, T>&&)
 noexcept (noexcept ((boost::error_info<Tag,
 T>::value_type)(std::move(boost::error_info<Tag, T>::x.value_))))’ has a
 different exception specifier
      error_info( error_info<Tag,T> && x )
 BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(value_type(std::move(error_info<Tag,T>::x.value_)))):
                                           ^
 In file included from ./boost/exception/info.hpp:17:0,
                  from ./boost/exception/detail/exception_ptr.hpp:20,
                  from ./boost/exception_ptr.hpp:9,
                  from ./boost/thread/exceptional_ptr.hpp:10,
                  from ./boost/thread/future.hpp:25,
                  from libs/thread/src/pthread/thread.cpp:19:
 ./boost/exception/detail/error_info_impl.hpp:54:9: error: from previous
 declaration ‘boost::error_info<Tag, T>::error_info(boost::error_info<Tag,
 T>&&) noexcept (noexcept ((boost::error_info<Tag,
 T>::value_type)(std::move(x.value_))))’
          error_info( error_info<Tag,T> && x )
 BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(value_type(std::move(x.value_))));
          ^
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac10/boost/ticket/11874#comment:28>
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-07-12 09:13:30 UTC