Re: [Boost-bugs] [Boost C++ Libraries] #3911: Boost.Serialization test failures on AIX with vacpp

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #3911: Boost.Serialization test failures on AIX with vacpp
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-02-11 18:44:59


#3911: Boost.Serialization test failures on AIX with vacpp
-------------------------------------+--------------------------------------
 Reporter: ccambly@… | Owner: ramey
     Type: Bugs | Status: new
Milestone: Boost 1.43.0 | Component: serialization
  Version: Boost Development Trunk | Severity: Problem
 Keywords: |
-------------------------------------+--------------------------------------
Changes (by anonymous):

  * owner: johnmaddock => ramey

Comment:

 Whatever the cause is, I'm not convinced that this is the correct fix.

 I note that with the regression tests (32-bit) run with vacpp 10.1 that
 the integer tests are all compiling.

 Are you really saying that there is no int64_t in stdint.h? Come to that
 I don't see how this macro can be defined in 64-bit mode either?

 I believe the problem here is in polymorphic_iarchive.hpp, rather than:
 {{{
     #if !defined(BOOST_NO_INTRINSIC_INT64_T)
     virtual void load(boost::int64_t & t) = 0;
     virtual void load(boost::uint64_t & t) = 0;
     #endif
 }}}
 It should be:
 {{{
     #if defined(BOOST_HAS_LONG_LONG)
     virtual void load(boost::long_long_type & t) = 0;
     virtual void load(boost::ulong_long_type & t) = 0;
     #elif defined(BOOST_HAS_MS_INT64)
     virtual void load(__int64 & t) = 0;
     virtual void load(unsigned __int64 & t) = 0;
     #endif
 }}}

 In other word if you overload on ''type'', then overload by "long long" or
 equivalent as well. Alternatively overload by ''size'': int16_t, int32_t
 etc (but this may miss some types out if they're the same size as each
 other, causing problems down the road). But whatever you do don't mix the
 two!

 BTW long long will be part of the next standard, so we should be
 supporting this as a native type where available anyway.

 HTH, John.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/3911#comment:2>
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:02 UTC