Re: [Boost-bugs] [Boost C++ Libraries] #3604: Access violation on diamond inheritance

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #3604: Access violation on diamond inheritance
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-05-16 22:30:36

#3604: Access violation on diamond inheritance
  Reporter: kondo@… | Owner: ramey
      Type: Support Requests | Status: reopened
 Milestone: Boost 1.41.0 | Component: serialization
   Version: Boost 1.40.0 | Severity: Not Applicable
Resolution: | Keywords:

Comment(by ramey):

 This is still not working for me.

 I'm using:

 latest 1.43 release version
 void_cast_add_or.cpp as you've added
 void_cast.hpp as above
 MSVC 7.1
 static version of the library

 As far as I can tell, the following code

     virtual void const * upcast(void const * const t) const {
         const Base * b =
             dynamic_cast<const Base *>(
                 static_cast<const Derived *>(t)
         return b;


 on line # 219 of void_cast.hpp isn't working.

 It should do a dynamic_cast to EX1Level2_A * from a EX1Level1 * but the
 pointer doesn't change and subsequent to that the program crashes.

 I should say that the next item in the stack shows line # 348 in
 void_cast.cpp which is a mystery to me.

 Double check this to see if we're still getting the same results. If not,
 I can check my change into the trunk and you can run from there. I might
 also check with another compiler - but I'm curious to know what you're
 using so we be sure that's not a source of difference.

 So nice to meet you in person at BoostCon 2010

 Robert Ramey

Ticket URL: <>
Boost C++ Libraries <>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:03 UTC