Subject: [Boost-bugs] [Boost C++ Libraries] #2019: Intrusive lists seem to return invalid references with member hooks in 64 bit mode on calling front/back
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2008-06-18 15:46:23
#2019: Intrusive lists seem to return invalid references with member hooks in 64
bit mode on calling front/back
-----------------------------------------------------+----------------------
Reporter: Nico Becherer <n.becherer_at_[hidden]> | Owner: igaztanaga
Type: Bugs | Status: new
Milestone: Boost 1.35.1 | Component: intrusive
Version: Boost 1.35.0 | Severity: Showstopper
Keywords: crash, 64 bit, |
-----------------------------------------------------+----------------------
In our application we use intrusive lists with classes that contain
multiple member hooks for insertion in variuos lists. The member_hooks are
defined without any template options as are the boost::intrusive lists
that are used.
Our code however, which runs great on 32 bit machines crashes on 64 bit
windows vista (compiled by MSVC 2005) when calling front () or back () on
an intrusive list. The problem seems to be caused by ...
inline std::size_t offset_from_pointer_to_member(const Member Parent::*
ptr_to_member)
... in parent_from_member.hpp, where the parameter ptr_to_member is
unitialized in the upper 32bit fields. There is a static assertion at the
top of the function (BOOST_STATIC_ASSERT(( sizeof(std::ptrdiff_t) ==
sizeof(ptr_to_member) ));) wich is disabled but throws an error in 64 bit
if enabled.
--
Ticket URL: <http://svn.boost.org/trac/boost/ticket/2019>
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:49:58 UTC