This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/53899] [C++0x] undefined reference to std::atomic<boost::lockfree::detail::tagged_ptr...


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53899

--- Comment #5 from Neil Nelson <nnelson at infowest dot com> 2012-07-09 16:06:11 UTC ---
Jonathan, (redi at gcc dot gnu.org <gcc-bugzilla@gcc.gnu.org>)

I installed g++-4.7 and obtained a good improvement over the prior 
results with the following output

boost_lockfree/libs/lockfree/test$ g++-4.7 -std=c++0x bench_3.cpp -o bench_3
In file included from /usr/include/boost/lockfree/detail/atomic.hpp:15:0,
                  from ../../../boost/lockfree/fifo.hpp:26,
                  from bench_3.cpp:1:
/usr/include/c++/4.7/atomic: In instantiation of âstruct 
std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node> 
 >â:
/usr/include/boost/lockfree/detail/freelist.hpp:203:29:   required from here
/usr/include/c++/4.7/atomic:160:7: error: function 
âstd::atomic<_Tp>::atomic() [with _Tp = 
boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node>]â 
defaulted on its first declaration with an exception-specification that 
differs from the implicit declaration 
âstd::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::freelist_node> 
 >::atomic()â
/usr/include/c++/4.7/atomic: In instantiation of âstruct 
std::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long 
int, boost::lockfree::caching_freelist_t, std::allocator<long int> 
 >::node> >â:
../../../boost/lockfree/fifo.hpp:287:29:   required from âclass 
boost::lockfree::detail::fifo<long int, 
boost::lockfree::caching_freelist_t, std::allocator<long int> >â
../../../boost/lockfree/fifo.hpp:315:7:   required from âclass 
boost::lockfree::fifo<long int>â
bench_3.cpp:18:5:   required from here
/usr/include/c++/4.7/atomic:160:7: error: function 
âstd::atomic<_Tp>::atomic() [with _Tp = 
boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long 
int, boost::lockfree::caching_freelist_t, std::allocator<long int> 
 >::node>]â defaulted on its first declaration with an 
exception-specification that differs from the implicit declaration 
âstd::atomic<boost::lockfree::detail::tagged_ptr<boost::lockfree::detail::fifo<long 
int, boost::lockfree::caching_freelist_t, std::allocator<long int> 
 >::node> >::atomic()â

Tim Blechmann posted on the Boost list this morning he was doing final 
testing for the Boost 51 release. I will copy this to him in case he has 
an idea. My impression is that g++ -std=c++0x and boost lockfree are 
rather close.

Neil

On 07/09/2012 08:45 AM, redi at gcc dot gnu.org wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53899
>
> --- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-07-09 14:45:26 UTC ---
> (In reply to comment #2)
>> The lockfree code is invalid anyway because boost::lockfree::detail::tagged_ptr
>> doesn't have a trivial default constructor, so it can't be used with
>> std::atomic
> Actually ignore that part - I misread the spec.
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]