Opened 9 years ago

Closed 8 years ago

Last modified 7 years ago

#9829 closed Bugs (invalid)

incorrect coding when BOOST_NO_CXX11_RVALUE_REFERENCES is defined

Reported by: melanie.blower@… Owned by: John Maddock
Milestone: To Be Determined Component: config
Version: Boost 1.54.0 Severity: Problem
Keywords: Cc:

Description

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

Change History (6)

comment:1 by Melanie Blower <melanie.blower@…>, 9 years ago

Actually the file is too big to attach

comment:2 by Steven Watanabe, 9 years ago

What substitute code? There's no reference to Boost at all in that error message. You'll need to be more specific.

comment:3 by viboes, 8 years ago

Component: Noneconfig
Owner: set to John Maddock

comment:4 by John Maddock, 8 years ago

You need to provide a reduced test case *using Boost only*, without that we simply have no idea what you're talking about.

comment:5 by John Maddock, 8 years ago

Resolution: invalid
Status: newclosed

Closing down: please reopen if you have a test case for us, thanks.

comment:6 by nmusolino@…, 7 years ago

I believe that ticket #11815 may be a manifestation of the same issue. Adding a comment to establish the cross-reference and notify the original reporter.

Note: See TracTickets for help on using tickets.