[Boost-bugs] [Boost C++ Libraries] #9829: incorrect coding when BOOST_NO_CXX11_RVALUE_REFERENCES is defined

Subject: [Boost-bugs] [Boost C++ Libraries] #9829: incorrect coding when BOOST_NO_CXX11_RVALUE_REFERENCES is defined
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-04-02 17:36:51


#9829: incorrect coding when BOOST_NO_CXX11_RVALUE_REFERENCES is defined
------------------------------+------------------------------
 Reporter: melanie.blower@… | Type: Bugs
   Status: new | Milestone: To Be Determined
Component: None | Version: Boost 1.54.0
 Severity: Problem | Keywords:
------------------------------+------------------------------
 Hello!
 I'm trying to compile hhvm (hip hop vm) with the Intel compiler using gcc
 4.8.2 headers, and boost 1.54

 This version of boost, configured for the Intel compiler, defines
 BOOST_NO_CXX11_RVALUE_REFERENCES, and the substitute code which is
 supplied for this configuration is incorrect. It causes a compilation
 problem in hhvm. I confirmed that by attempting to compile the file using
 g++ and -DDBOOST_NO_CXX11_RVALUE_REFERENCES, and g++ reports the same
 issue.

 /nfs/ins/proj/icl/rdrive/ref/gcc/4.8.2/rhel60/efi2/bin/../include/c++/4.8.2/bits/stl_algobase.h(682)
 : error: no operator "=" matches these operands
             operand types are: HPHP::JIT::RegAllocInfo::RegMap = const
 HPHP::JIT::RegAllocInfo::RegMap
         *__first = __value;
                  ^
           detected during:
             instantiation of "__gnu_cxx::__enable_if<<expression>,
 void>::__type std::__fill_a(_Forw
 ardIterator, _ForwardIterator, const _Tp &) [with
 _ForwardIterator=HPHP::JIT::RegAllocInfo::RegMap *
 , _Tp=HPHP::JIT::RegAllocInfo::RegMap]" at line 729
             instantiation of "void std::fill(_ForwardIterator,
 _ForwardIterator, const _Tp &) [with
 _ForwardIterator=HPHP::JIT::RegAllocInfo::RegMap *,
 _Tp=HPHP::JIT::RegAllocInfo::RegMap]" at line 46
 2 of
 "/nfs/ins/proj/icl/rdrive/ref/gcc/4.8.2/rhel60/efi2/bin/../include/c++/4.8.2/bits/vector.tcc"
             instantiation of "void std::vector<_Tp,
 _Alloc>::_M_fill_insert(std::vector<_Tp, _Alloc>
 ::iterator, std::vector<_Tp, _Alloc>::size_type={std::size_t={unsigned
 long}}, const std::vector<_Tp
 , _Alloc>::value_type &) [with _Tp=HPHP::JIT::RegAllocInfo::RegMap,
 _Alloc=HPHP::smart::Allocator<HP
 HP::JIT::RegAllocInfo::RegMap>]" at line 1024 of
 "/nfs/ins/proj/icl/rdrive/ref/gcc/4.8.2/rhel60/efi2
 /bin/../include/c++/4.8.2/bits/stl_vector.h"
             instantiation of "void std::vector<_Tp,
 _Alloc>::insert(std::vector<_Tp, _Alloc>::iterat
 or, std::vector<_Tp, _Alloc>::size_type={std::size_t={unsigned long}},
 const std::vector<_Tp, _Alloc
>::value_type &) [with _Tp=HPHP::JIT::RegAllocInfo::RegMap,
 _Alloc=HPHP::smart::Allocator<HPHP::JIT:
 :RegAllocInfo::RegMap>]" at line 687 of
 "/nfs/ins/proj/icl/rdrive/ref/gcc/4.8.2/rhel60/efi2/bin/../i
 nclude/c++/4.8.2/bits/stl_vector.h"
             instantiation of "void std::vector<_Tp,
 _Alloc>::resize(std::vector<_Tp, _Alloc>::size_t
 ype={std::size_t={unsigned long}}, const std::vector<_Tp,
 _Alloc>::value_type &) [with _Tp=HPHP::JIT
 ::RegAllocInfo::RegMap,
 _Alloc=HPHP::smart::Allocator<HPHP::JIT::RegAllocInfo::RegMap>]" at line
 100
  of
 "/nfs/ins/proj/icl/cg/users/xxx/work/workloads/hhvm.icc/hhvm/hphp/runtime/vm/jit/state
 -vector.h"
             instantiation of "void HPHP::JIT::StateVector<Key,
 Info>::grow() [with Key=HPHP::JIT::IR
 Instruction, Info=HPHP::JIT::RegAllocInfo::RegMap]" at line 76 of
 "/nfs/ins/proj/icl/cg/users/xxx/work/workloads/hhvm.icc/hhvm/hphp/runtime/vm/jit
 /state-vector.h"
             instantiation of "HPHP::JIT::StateVector<Key, Info>::reference
 HPHP::JIT::StateVector<Ke
 y, Info>::operator[](uint32_t={unsigned int}) [with
 Key=HPHP::JIT::IRInstruction, Info=HPHP::JIT::Re
 gAllocInfo::RegMap]" at line 86 of
 "/nfs/ins/proj/icl/cg/users/xxx/work/workloads/hhvm.icc
 /hhvm/hphp/runtime/vm/jit/state-vector.h"
             instantiation of "HPHP::JIT::StateVector<Key, Info>::reference
 HPHP::JIT::StateVector<Ke
 y, Info>::operator[](const Key *) [with Key=HPHP::JIT::IRInstruction,
 Info=HPHP::JIT::RegAllocInfo::
 RegMap]" at line 63 of
 "/nfs/ins/proj/icl/cg/users/xxx/work/workloads/hhvm.icc/hhvm/hphp/r
 untime/vm/jit/reg-alloc.h"

 In a separate ticket I'll file requests to modify the availability of
 rvalue references based on Intel compiler version (or EDG symbols). The
 currently available Intel compiler does provide rvalue references

 Attaching the preprocessed output from the Intel compiler

 Thanks and regards, Melanie

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/9829>
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:15 UTC