[Boost-bugs] [Boost C++ Libraries] #2019: Intrusive lists seem to return invalid references with member hooks in 64 bit mode on calling front/back

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