Subject: Re: [Boost-bugs] [Boost C++ Libraries] #11832: clang-cl + boost intrusive = miscompile
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-12-08 22:38:02
#11832: clang-cl + boost intrusive = miscompile
------------------------------------------+------------------------
Reporter: Yaron Keren <yaron.keren@â¦> | Owner: igaztanaga
Type: Bugs | Status: new
Milestone: To Be Determined | Component: intrusive
Version: Boost 1.59.0 | Severity: Problem
Resolution: | Keywords:
------------------------------------------+------------------------
Comment (by Yaron Keren <yaron.keren@â¦>):
Reid Kleckner diagnosed the problem in
https://llvm.org/bugs/show_bug.cgi?id=25761:
In boost/intrusive/detail/parent_from_member.hpp, the implementation of
offset_from_pointer_to_member goes down the #idefs to the #else case,
which subtracts one from the offset to create the off-by-one pointer.
BOOST_INTRUSIVE_MSVC_ABI_PTR_TO_MEMBER should be defined for clang-cl.
This could be fixed by modifying parent_from_member.hpp:26 from:
{{{
#if defined(BOOST_MSVC) || ((defined(_WIN32) || defined(__WIN32__) ||
defined(WIN32)) && defined(BOOST_INTEL))
}}}
to:
{{{
#if defined(_MSC_VER) || ((defined(_WIN32) || defined(__WIN32__) ||
defined(WIN32)) && defined(BOOST_INTEL))
}}}
since BOOST_MSVC is defined only for Visual C++ while _MSC_VER is defined
for both Visual C++ and clang-cl.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/11832#comment:1> 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:19 UTC